在Python FOR循环中获取循环计数
在迭代列表的Python for
循环中,我们可以这样写:
for item in list: print item
它整齐地贯穿列表中的所有元素。 有没有办法知道在循环内有多less次我一直循环到目前为止? 例如,我想列出一个列表,在处理了十个元素之后,我想和他们做一些事情。
我想到的替代scheme会是这样的:
count=0 for item in list: print item count +=1 if count % 10 == 0: print 'did ten'
要么:
for count in range(0,len(list)): print list[count] if count % 10 == 0: print 'did ten'
有没有更好的方法(就像for item in list
)到目前为止的迭代次数?
Pythonic的方式是使用enumerate
:
for idx,item in enumerate(list):
同意尼克。 这里是更详细的代码。
#count=0 for idx, item in enumerate(list): print item #count +=1 #if count % 10 == 0: if (idx+1) % 10 == 0: print 'did ten'
我已经在你的代码中注释了countvariables。
这也可以使用zip() 。
for i, item in zip(range(len(my_list)), my_list):
尝试使用itertools.count([n])
我知道一个很老的问题,但….遇到了其他的东西,所以我给我的镜头:
[each*2 for each in [1,2,3,4,5] if each % 10 == 0])