Ich kann also beginnen mit collection[len(collection)-1]
und enden mit collection[0]
.
Ich möchte auch auf den Schleifenindex zugreifen können.
Ich kann also beginnen mit collection[len(collection)-1]
und enden mit collection[0]
.
Ich möchte auch auf den Schleifenindex zugreifen können.
Wenn Sie den Index benötigen und Ihre Liste klein ist, ist die lesbarste Methode reversed(list(enumerate(your_list)))
wie die akzeptierte Antwort besagt. Aber dies erzeugt eine Kopie Ihrer Liste. Wenn Ihre Liste also einen großen Teil Ihres Speichers einnimmt, müssen Sie den Index subtrahieren, der von enumerate(reversed())
de len()-1
.
Wenn Sie es nur einmal tun müssen:
a = ['b', 'd', 'c', 'a']
for index, value in enumerate(reversed(a)):
index = len(a)-1 - index
do_something(index, value)
oder wenn Sie dies mehrmals tun müssen, sollten Sie einen Generator verwenden:
def enumerate_reversed(lyst):
for index, value in enumerate(reversed(lyst)):
index = len(lyst)-1 - index
yield index, value
for index, value in enumerate_reversed(a):
do_something(index, value)
Ich denke, der eleganteste Weg ist die Umwandlung enumerate
y reversed
unter Verwendung des folgenden Generators
(-(ri+1), val) for ri, val in enumerate(reversed(foo))
die eine Umkehrung der enumerate
Iterator
例
foo = [1,2,3]
bar = [3,6,9]
[
bar[i] - val
for i, val in ((-(ri+1), val) for ri, val in enumerate(reversed(foo)))
]
Ergebnis:
[6, 4, 2]
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.