在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])