1351 Stimmen

Wie kann man eine Liste umkehren?

Wie kann ich in Python rückwärts über eine Liste iterieren?

array = [0, 10, 20, 40]
for (i = array.length() - 1; i >= 0; i--)

1voto

Rick Punkte 19

Sie können die Liste immer wie einen Stapel behandeln, indem Sie die Elemente vom hinteren Ende der Liste aus nach oben auf den Stapel legen. Auf diese Weise nutzen Sie die Vorteile der First-In-Last-Out-Eigenschaften eines Stapels. Natürlich verbrauchen Sie das 1st Array. Ich mag diese Methode, da sie ziemlich intuitiv ist, da man sieht, dass eine Liste vom hinteren Ende konsumiert wird, während die andere vom vorderen Ende aufgebaut wird.

>>> l = [1,2,3,4,5,6]; nl=[]
>>> while l:
        nl.append(l.pop())  
>>> print nl
[6, 5, 4, 3, 2, 1]

1voto

Jeff Mandell Punkte 803
def reverse(my_list):
  L = len(my_list)
  for i in range(L/2):
    my_list[i], my_list[L-i - 1] = my_list[L-i-1], my_list[i]
  return my_list

1voto

Rohan Chavan Punkte 19
list_data = [1,2,3,4,5]
l = len(list_data)
i=l+1
rev_data = []
while l>0:
  j=i-l
  l-=1
  rev_data.append(list_data[-j])
print "After Rev:- %s" %rev_data

1voto

John Machin Punkte 78125

Die direkteste Übersetzung Ihrer Anforderung in Python ist diese for Erklärung:

for i in xrange(len(array) - 1, -1, -1):
   print i, array[i]

Dies ist etwas kryptisch, kann aber nützlich sein.

0voto

Umkehrung an Ort und Stelle durch Umschalten von Referenzen mit entgegengesetzten Indizes:

>>> l = [1,2,3,4,5,6,7]    
>>> for i in range(len(l)//2):
...     l[i], l[-1-i] = l[-1-i], l[i]
...
>>> l
[7, 6, 5, 4, 3, 2, 1]

CodeJaeger.com

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.

Powered by:

X