Solche Ausdrücke findet man häufig in Python-Fragen zu SO. Entweder für den einfachen Zugriff auf alle Elemente der Iterable
for i in range(len(a)):
print(a[i])
Welches ist nur eine umständliche Art zu schreiben:
for e in a:
print(e)
Oder zum Zuweisen zu Elementen des iterablen:
for i in range(len(a)):
a[i] = a[i] * 2
Welches sollte das gleiche sein wie:
for i, e in enumerate(a):
a[i] = e * 2
# Or if it isn't too expensive to create a new iterable
a = [e * 2 for e in a]
Oder zum Filtern über die Indizes:
for i in range(len(a)):
if i % 2 == 1: continue
print(a[i])
Was so ausgedrückt werden könnte:
for e in a [::2]:
print(e)
Oder wenn Sie nur die Länge der Liste und nicht deren Inhalt benötigen:
for _ in range(len(a)):
doSomethingUnrelatedToA()
Welches könnte sein:
for _ in a:
doSomethingUnrelatedToA()
In Python wir haben enumerate
, schneiden, filter
, sorted
usw ... Als Python - for
Konstrukte zu iterieren Iterables vorgesehen sind und nicht reicht nur von ganzen Zahlen gibt es reale Anwendungsfälle , wo Sie brauchen in range(len(a))
?
range(len(a))
es sind normalerweise Leute, die mit Python ziemlich unerfahren sind (obwohl nicht unbedingt mit Programmierung im Allgemeinen).