Wie man in Python-Liste (Countdown)

Wie schließe ich in Python-Liste?

beispielsweise

Schleife:

L = [1,2,3] for item in L print item #-->1,2,3 

Schleife:

 L = [1,2,3] for ??? print item #-->3,2,1 

Danke

4 Solutions collect form web for “Wie man in Python-Liste (Countdown)”

Eine andere Lösung:

 for item in L[::-1]: print item 

Batterien enthalten.

 for i in reversed([1, 2, 3]): print i 

Das Aufschneiden der Liste ( ls[::-1] ) ist ideal für eine umgekehrte Kopie, aber auf meiner Maschine ist es langsamer für die Iteration, auch wenn die Liste bereits im Speicher ist:

 >>> def sliceit(x): ... l = range(x) ... for i in l[::-1]: ... i ... >>> def reverseit(x): ... l = range(x) ... for i in reversed(l): ... i ... >>> %timeit sliceit(100) 100000 loops, best of 3: 4.04 µs per loop >>> %timeit reverseit(100) 100000 loops, best of 3: 3.79 µs per loop >>> %timeit sliceit(1000) 10000 loops, best of 3: 34.9 µs per loop >>> %timeit reverseit(1000) 10000 loops, best of 3: 32.5 µs per loop >>> %timeit sliceit(10000) 1000 loops, best of 3: 364 µs per loop >>> %timeit reverseit(10000) 1000 loops, best of 3: 331 µs per loop 

Wie es oft in Fällen wie diesen der Fall ist, ist der Unterschied ziemlich vernachlässigbar. Es könnte für verschiedene Versionen von Python unterschiedlich sein (ich habe Python 2.7 für den obigen Test verwendet). Der wirkliche Vorteil der Verwendung von reversed ist Lesbarkeit – es wäre in den meisten Fällen vorzuziehen, auch wenn es ein paar zusätzliche Mikrosekunden kostet.

Umgekehrt die Reihenfolge.

 L = [1,2,3] for item in reversed(L) print item #-->3,2,1 

Ich weiß, dieser Thread ist jetzt Jahre alt, aber ein Kommentar unter der akzeptierten Antwort enthält die Behauptung, dass mit [::-1] schneller als mit reversed() . Dies ist nur wahr, wenn Ihre Liste explizit in den Speicher gelegt wird, was bei einem Countdown nicht notwendig ist. Ansonsten ist es langsamer:

 >>> timeit.Timer(stmt="range(1,1000)[::-1]").timeit() 10.801303316066111 >>> timeit.Timer(stmt="list(reversed(xrange(1,1000)))").timeit() 9.484562358901144 

und [::-1] verwendet mehr Platz als reversed .

  • Python Progamming Loop
  • Verwenden von Loop, um Brute Force Prime Numbers zu finden
  • Wie fügt man jedem Element in einer Liste eine Ganzzahl hinzu?
  • Finden der zweitkleinsten Zahl mit Schleifen in Python
  • Python Tkinter Coords Funktion nicht bewegte Leinwand Objekte innerhalb Schleife
  • Python - `Pause 'aus allen Schleifen
  • Wie konvertiert man diese Art von Loop in Python
  • Unterschiedliche Ausgabe aus dem gleichen Code mit Exponenten in Python
  • Traverse eine Liste in umgekehrter Reihenfolge in Python
  • Löschen einer Zeile in einer Datei
  • Wie kann ich in Python die Effizienz für die Schleife machen?
  • Python ist die beste Programmiersprache der Welt.