这个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'

Or:

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

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


python的方法是使用enumerate:

for idx, item in enumerate(my_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'

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


使用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