在Python FOR循环中获取循环计数

时间:2010-07-01 22:59:27

标签: python for-loop

在循环遍历列表的Python for循环中,我们可以写:

for item in list:
    print item

它整齐地遍历列表中的所有元素。有没有办法在循环中知道到目前为止我循环了多少次?例如,我想要一个列表,在我处理了十个元素后,我想用它们做一些事情。

我想到的替代方案将是:

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一样)获得迭代次数?

5 个答案:

答案 0 :(得分:496)

pythonic方式是使用enumerate

for idx,item in enumerate(list):

答案 1 :(得分:69)

同意尼克。 这里有更详细的代码。

#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变量。

答案 2 :(得分:1)

使用zip函数,我们可以同时获取元素和索引。

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

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

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

output : Index : 0 Element : Pakistan ...

另请参阅:

Python.org

答案 3 :(得分:0)

尝试使用itertools.count([n])

答案 4 :(得分:0)

我知道相当古老的问题,但......看到了其他的东西,所以我给了我的镜头:

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