Pythons Liste enthält Funktionen, die die Reihenfolge ändern, z. B. sort () und reverse (). Wenn Sie sie jedoch verwenden möchten, müssen Sie die Spezifikationen verstehen und verwenden.
Ich war neulich süchtig nach dem Ärger, also werde ich es verlassen.
Zum Beispiel wie jede andere Funktion
print([1,3,8,7,4].sort())
Auch wenn ich schreibe, wird ** Keine angezeigt **.
Auf die gleiche Weise
print([1,3,8,7,4].reverse())
Das Ergebnis ist jedoch dasselbe.
sort()
Als ich vorerst die Python-Dokumentation las, fand ich so etwas.
Diese Methode ändert die Sequenz an Ort und Stelle, um beim Sortieren großer Sequenzen Platz zu sparen. Es wird keine sortierte Sequenz zurückgegeben, um den Benutzer darauf aufmerksam zu machen, dass dieser Vorgang als Nebeneffekt ausgeführt wird. http://docs.python.jp/3/library/stdtypes.html#list.sort
Dies bedeutet, dass sort () ** nur destruktive Änderungen vornimmt und keine sortierte Liste zurückgibt **.
Fahren Sie mit dem Dokument fort
Verwenden Sie sortiert (), um explizit eine neue Listeninstanz anzufordern
Es gibt.
Mit anderen Worten
l = [1,3,8,7,4]
l.sort()
print(l)
Oder schreiben
print(sorted([1,3,8,7,4]))
Muss geschrieben werden
reverse() reverse () auch, wenn ich das Dokument lese,
Die reverse () -Methode ändert die Sequenz an Ort und Stelle, um beim Umkehren großer Sequenzen Platz zu sparen. Dies gibt keine invertierte Sequenz zurück, um den Benutzer darauf aufmerksam zu machen, dass dieser Vorgang als Nebeneffekt ausgeführt wird http://docs.python.jp/3/library/stdtypes.html#mutable-sequence-types
Es gibt. Mit anderen Worten, wie bei sort () müssen Sie es einmal in eine Variable einfügen, eine destruktive Änderung vornehmen und es dann drucken.
Dann kommt eine Frage auf.
Gibt es ein reverse (), das eine umgekehrte Liste zurückgibt? Wann.
Zusammenfassend existiert die reverse () Funktion selbst.
Im Gegensatz zu sorted (), das eine sortierte Liste zurückgibt, gibt reverse () einen ** Iterator ** in der umgekehrten Reihenfolge der angegebenen Liste zurück.
Daher ist es notwendig, eine Liste aus dem Iterator zu generieren.
print([i for i in reversed([1,3,8,7,4])])
Und du musst.
Wenn Sie jedoch nur die Liste umblättern, ist das Schreiben einfacher.
print([1,3,8,7,4][::-1])
[:: -1] von [1,3,8,7,4] [:: -1] wird als Slice bezeichnet, und ich werde die Details weglassen, aber es ist eine Funktion, die einen Teil aus der Liste extrahieren und eine neue Liste erstellen kann. ist.
Sie können drei durch einen Doppelpunkt getrennte Werte angeben (dieser kann weggelassen werden). Der erste ist der Punkt, an dem die Extraktion beginnt, der zweite ist der Punkt, an dem die Extraktion endet, und der dritte ist das Extraktionsintervall.
Dieses Mal ist das Intervall -1, daher wird es zum Extrahieren um 1 erhöht (= alle extrahieren), und da es ein Minus hat, beginnt das Extrahieren am Ende der Liste.
Sie erhalten also eine Liste in umgekehrter Reihenfolge.
Als Methode zum Umkehren der Liste,
Ich möchte Speicherplatz sparen → reverse ()
Ich möchte jedem Wert eine Verarbeitung hinzufügen, während ich eine invertierte Liste erstelle (verdoppeln usw.) → umgekehrt ()
Ich möchte es vorerst umdrehen → Slice
Ich denke, Sie sollten es richtig verwenden.
Wenn Sie sich nicht sicher sind, wie es sich verhält, lesen Sie die Dokumentation.
Recommended Posts