在循环遍历列表的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
一样)获得迭代次数?
答案 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 ...
另请参阅:
答案 3 :(得分:0)
尝试使用itertools.count([n])
答案 4 :(得分:0)
我知道相当古老的问题,但......看到了其他的东西,所以我给了我的镜头:
[each*2 for each in [1,2,3,4,5] if each % 10 == 0])