Get loop count inside a for-loop [duplicate]
This for
loop iterates over all elements in a list:
for item in my_list:
print item
Is there a way to know within the loop how many times I've been looping so far? For instance, I want to take a list and after I've processed ten elements I want to do something with them.
The alternatives I thought about would be something like:
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'
Is there a better way (just like the for item in my_list
) to get the number of iterations so far?
The pythonic way is to use enumerate
:
for idx, item in enumerate(my_list):
Agree with Nick. Here is more elaborated code.
#count=0
for idx, item in enumerate(list):
print item
#count +=1
#if count % 10 == 0:
if (idx+1) % 10 == 0:
print 'did ten'
I have commented out the count variable in your code.
Using zip function we can get both element and index.
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 ...
See also :
Python.org
精彩评论