python - 有没有办法让一个循环有两个范围?
问题描述
我想从我的列表中取出 10 个值中的 1 个,但我也想取出最后一个 ( l[19]
)。
我们可以在循环中做一个双范围吗?
l=[1]*20
for i in range(0,20,10)and range(len(l)-1,len(l)):
print("i ="+str(i),l[i])
还是没有双范围的其他方式?
l=[1]*20
for i in range(0,20,10):
print("i = "+str(i), l[i])
预期的: "i = 0, 1", "i = 10, 1", "i = 19, 1"
实际结果:"i = 19, 1",
python 2 的答案:
如何将非连续数字添加到范围?
我的实际python版本(python 3.7)的最佳(以我的拙见)答案:(因为我们不需要导入库或创建列表)
for i in [*range(0, len(l), 10)] + [len(l)-1]:
print("i = {}, {}".format(str(i), l[i]))
谢谢大家的答案 !
解决方案
使用zip
:
for x, y in zip(range(10), range(10, 0, -1)):
... print(x, y)
...
0 10
1 9
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1
推荐阅读
- boolean - 测试 4 个中有 2 个为真的逻辑
- javascript - CORS 客户端与服务器端
- node.js - Heroku 错误:ENOENT:没有这样的文件或目录
- javascript - 淡入屏幕顶部和底部的元素
- python - 为什么更新 Pyrebase4 后会出现错误?
- node.js - 在nodejs中使用加密签署pdf文档
- swift - 使用 Xcode - 安装自定义字体以供 mac 中的所有应用程序使用
- aggregation - 如何在自定义 Presto 聚合函数中强制执行排序 (ORDER BY)
- javascript - 从不同颜色的句子中显示一个 json 单词
- c# - 当我尝试每 10 秒在屏幕上显示文本时,它永远不会工作