In einer for
-Schleife von Python, die eine Liste durchläuft, können wir schreiben:
for item in list:
print item
und es geht ordentlich durch alle Elemente in der Liste. Gibt es eine Möglichkeit, innerhalb der Schleife zu erfahren, wie oft ich bisher geschlungen habe? Zum Beispiel möchte ich eine Liste nehmen und nachdem ich zehn Elemente bearbeitet habe, möchte ich etwas damit anfangen.
Die Alternativen, über die ich nachgedacht habe, wären etwa so:
count=0
for item in list:
print item
count +=1
if count % 10 == 0:
print 'did ten'
Oder:
for count in range(0,len(list)):
print list[count]
if count % 10 == 0:
print 'did ten'
Gibt es einen besseren Weg (genau wie der for item in list
), um die Anzahl der bisherigen Iterationen zu ermitteln?
Der pythonische Weg ist die Verwendung von enumerate
:
for idx,item in enumerate(list):
Stimmen Sie mit Nick zu. Hier ist ausführlicherer 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'
Ich habe die count-Variable in Ihrem Code auskommentiert.
Versuchen Sie es mit itertools.count([n])
Ich kenne eine ziemlich alte Frage, aber .... ist auf etwas anderes gestoßen, also gebe ich meine Chance:
[each*2 for each in [1,2,3,4,5] if each % 10 == 0])