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


259

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

for item in list:
    print item

整齐地遍历列表中的所有元素。有没有办法知道循环中到目前为止我循环了多少次?例如,我要列出一个列表,在处理完10个元素之后,我想对它们进行处理。

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

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)来获得到目前为止的迭代次数?


1
您可能也有兴趣在回答迭代的块列表:stackoverflow.com/questions/434287/...
戴夫·巴切尔

Answers:



86

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

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


9
您也可以使用enumerate的可选start参数从1而不是0开始枚举,尽管那样我会使用OP的名称count代替idx
Stefan Pochmann

我不知道有一个可选的开始参数。很高兴知道。谢谢
Vikram Garg

1

我知道一个比较老的问题,但是....发现其他东西,所以我投篮了:

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.