webentwicklung-frage-antwort-db.com.de

Liefert die Anzahl der Schleifen in einer Python FOR-Schleife

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?

195
greye

Der pythonische Weg ist die Verwendung von enumerate :

for idx,item in enumerate(list):
475
Nick Bastin

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.

63
Vikram Garg

Versuchen Sie es mit itertools.count([n])

0
Andy

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])
0
hephestos