获取for循环内的循环计数

新手上路,请多包涵

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

 for item in my_list:
    print item

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

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

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

原文由 greye 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 575
2 个回答

pythonic 方法是使用 enumerate

 for idx, item in enumerate(my_list):

原文由 Nick Bastin 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

原文由 Vikram Garg 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题