W for
pętli Python, która iteruje po liście, możemy napisać:
for item in list:
print item
i starannie przechodzi przez wszystkie elementy na liście. Czy istnieje sposób, aby wiedzieć w pętli, ile razy zapętlałem do tej pory? Na przykład chcę wziąć listę, a po przetworzeniu dziesięciu elementów chcę coś z nimi zrobić.
Alternatywy, o których myślałem, to coś w stylu:
count=0
for item in list:
print item
count +=1
if count % 10 == 0:
print 'did ten'
Lub:
for count in range(0,len(list)):
print list[count]
if count % 10 == 0:
print 'did ten'
Czy istnieje lepszy sposób (tak jak ten for item in list
), aby uzyskać jak dotąd liczbę iteracji?
Odpowiedzi:
Pythonowym sposobem jest użycie
enumerate
:źródło
Zgadzam się z Nickiem. Oto bardziej rozbudowany kod.
Skomentowałem zmienną count w twoim kodzie.
źródło
enumerate
opcjonalnegostart
, aby rozpocząć wyliczanie z 1 zamiast 0, chociaż wtedy użyłbym nazwy OPcount
zamiastidx
.Znam raczej stare pytanie, ale .... natknąłem się na coś innego, więc daję szansę:
źródło
Za pomocą funkcji zip możemy uzyskać zarówno element, jak i indeks.
Zobacz też :
Python.org
źródło
Spróbuj użyć
itertools.count([n])
źródło