获取for循环中的循环计数

for循环遍历列表中的所有元素:

for item in my_list:
print item

有没有办法知道到目前为止我已经循环了多少次?例如,我想要一个列表,在我处理了10个元素之后,我想对它们做一些事情。

我想到的替代方案是这样的:

count=0
for item in my_list:
print item
count +=1
if count % 10 == 0:
print 'did ten'

或者:

for count in range(0,len(my_list)):
print my_list[count]
if count % 10 == 0:
print 'did ten'

是否有更好的方法(就像for item in my_list一样)来获取到目前为止的迭代次数?

554553 次浏览

python的方法是使用enumerate:

for idx, item in enumerate(my_list):
同意Nick的观点。 下面是更详细的代码
#count=0
for idx, item in enumerate(list):
print item
#count +=1
#if count % 10 == 0:
if (idx+1) % 10 == 0:
print 'did ten'

我已经在代码中注释掉了count变量。

我知道一个很老的问题,但是....我看到了其他东西,所以我试了一下:

[each*2 for each in [1,2,3,4,5] if each % 10 == 0])

使用zip函数,我们可以得到元素和索引。

countries = ['Pakistan','India','China','Russia','USA']


for index, element in zip(range(0,countries),countries):


print('Index : ',index)
print(' Element : ', element,'\n')


output : Index : 0 Element : Pakistan ...

参见:

Python.org