我总是被告知,enumerate当您需要计算数字并同时迭代时,可以使用内置函数.
例如,这是Python中常见的习惯用法(函数gen返回生成器):
for index, item in enumerate(gen()):
# Do something with item
# get the numbers consumed from generator
print("% number of items processed" % (index+1,))
Run Code Online (Sandbox Code Playgroud)
但如果发电机什么也没有返回?例如enumerate(range(0)),index变量将是未定义的.
我们可以index在for循环之前定义变量,但是还有更多我不知道的pythonic解决方案吗?
enumerate(gen(), start=1)将index开始计数1,去除的需要index+1.否则,我认为你拥有的已经是Pythonic.
index = 0
for index, item in enumerate(gen(), start=1):
# Do something with item
print("%d number of items processed" % (index,))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |