wie Schleife unten in der python Liste (countdown)
wie eine Schleife hinunter in python-Liste?
beispielsweise
Schleife:
L = [1,2,3]
for item in L
print item #-->1,2,3
Schleife unten:
L = [1,2,3]
for ???
print item #-->3,2,1
danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Andere Lösung:
reversed()
nur kopieren, wenn erforderlich.L[::-1]:
schneller laufen alsreversed(L)
reversed(L)
ist schneller alsL[::-1]
.Batterien im Lieferumfang enthalten.
Aufschneiden der Liste (
ls[::-1]
) ist hervorragend für eine umgekehrte Kopie, aber auf meinem Rechner ist langsamer für die iteration, auch wenn die Liste bereits im Speicher:Wie oft true in Fällen wie diesen, ist der Unterschied ziemlich vernachlässigbar. Es könnte für verschiedene Versionen von Python (ich habe Python 2.7 für den obigen test). Die wirkliche Vorteil der Verwendung von
reversed
ist die Lesbarkeit -- wäre es besser, in den meisten Fällen, auch wenn es kostet ein paar Mikrosekunden.In umgekehrter Reihenfolge.
Ich weiß, dieser thread ist jetzt Jahre alt, aber ein Kommentar unter der akzeptierten Antwort enthält die Behauptung, dass mit
[::-1]
ist schneller als die Verwendungreversed()
. Dies gilt nur, wenn Ihre Liste ist explizit in den Speicher, was ist nicht notwendig, wenn dabei ein countdown. Sonst ist es langsamer:...und
[::-1]
benötigt mehr Platz alsreversed
.reversed
ist schneller, auch für Listen, die bereits im Speicher. (Siehe die timings auf meine bearbeitete Antwort.)