Frage Wie kann ich eine Liste in Python umkehren?


Wie kann ich in Python Folgendes tun?

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

Ich brauche die Elemente eines Arrays, aber vom Ende bis zum Anfang.


733
2017-10-15 06:59


Ursprung


Antworten:


Sie können die verwenden reversed Funktion hierfür als:

>>> array=[0,10,20,40]
>>> for i in reversed(array):
...     print(i)

Beachten Sie, dass reversed(...) gibt keine Liste zurück. Sie können eine umgekehrte Liste mit erhalten list(reversed(array)).


924
2017-10-15 07:02



>>> L = [0,10,20,40]
>>> L[::-1]
[40, 20, 10, 0]

Die erweiterte Slice-Syntax wird in Python gut erklärt Was ist neu? Eintrag für die Veröffentlichung 2.3.5

Auf besonderen Wunsch in einem Kommentar Dies ist die aktuellste Slice-Dokumentation.


1020
2017-10-15 07:01



>>> L = [0,10,20,40]
>>> L.reverse()
>>> L
[40, 20, 10, 0]

Oder

>>> L[::-1]
[40, 20, 10, 0]

292
2017-10-15 07:03



Dies ist, um die Liste zu duplizieren:

L = [0,10,20,40]
p = L[::-1]  #  Here p will be having reversed list

Dies ist, um die Liste an Ort und Stelle umzukehren:

L.reverse() # Here L will be reversed in-place (no new list made)

38
2018-03-09 07:36



Ich denke, dass der beste Weg, eine Liste in Python umzukehren, Folgendes ist:

a = [1,2,3,4]
a = a[::-1]
print(a)
>>> [4,3,2,1]

Der Job ist erledigt, und jetzt haben Sie eine umgekehrte Liste.


23
2017-09-21 15:52



Um die gleiche Liste umzukehren, benutzen Sie:

array.reverse()

Um eine umgekehrte Liste einer anderen Liste zuzuordnen, verwenden Sie:

newArray = array[::-1] 

22
2017-11-20 16:12



Unter Verwendung von Schneiden, z.B. array = array [:: - 1], ist ein netter Trick und sehr pythonisch, aber für Neulinge vielleicht etwas undurchsichtig. Die Verwendung der reverse () -Methode ist ein guter Weg, um in die tägliche Programmierung zu gehen, da sie leicht lesbar ist.

Wenn Sie jedoch eine Liste wie in einer Interviewfrage umkehren müssen, werden Sie wahrscheinlich keine integrierten Methoden wie diese verwenden können. Der Interviewer wird sich damit beschäftigen, wie Sie das Problem angehen, und nicht die Tiefe des Python-Wissens. Ein Algorithmus ist erforderlich. Das folgende Beispiel, das einen klassischen Swap verwendet, könnte eine Möglichkeit sein:

def reverse_in_place(lst):      # Declare a function
    size = len(lst)             # Get the length of the sequence
    hiindex = size - 1
    its = size/2                # Number of iterations required
    for i in xrange(0, its):    # i is the low index pointer
        temp = lst[hiindex]     # Perform a classic swap
        lst[hiindex] = lst[i]
        lst[i] = temp
        hiindex -= 1            # Decrement the high index pointer
    print "Done!"

# Now test it!!
array = [2, 5, 8, 9, 12, 19, 25, 27, 32, 60, 65, 1, 7, 24, 124, 654]

print array                    # Print the original sequence
reverse_in_place(array)        # Call the function passing the list
print array                    # Print reversed list


**The result:**
[2, 5, 8, 9, 12, 19, 25, 27, 32, 60, 65, 1, 7, 24, 124, 654]
Done!
[654, 124, 24, 7, 1, 65, 60, 32, 27, 25, 19, 12, 9, 8, 5, 2]

Beachten Sie, dass dies bei Tupel oder String-Sequenzen nicht funktioniert, da Strings und Tupel unveränderlich sind, d. H. Sie können nicht in sie schreiben, um Elemente zu ändern.


18
2018-02-25 14:51



for x in array[::-1]:
    do stuff

16
2017-10-15 07:01