2016-06-05 23 views
5

Ich wollte nur den Unterschied zwischen reverse() und [:: - 1] in Bezug auf Referenzen wissen.Unterschied zwischen reverse und [:: - 1]

Zum Beispiel

p = [1,2,3] 
x = p[::-1] 
print(x) 
print(p) 

p.reverse() 
print(p ==p[::-1]) 
print(p == x) 

so Ausgänge sind

[3,2,1] 
[1,2,3] 
False 
True 
+3

'reverse()' kehrt die Liste in-place um, '[:: - 1]' klont sie in umgekehrter Reihenfolge. –

+1

Zeigt Ihre Ausgabe dort nicht den Unterschied? –

+1

Beachten Sie, dass, wenn Sie keine Liste mit den Werten in umgekehrter Reihenfolge benötigen (nur iterierbar), die Verwendung der umgekehrten Built-in-Funktion effizienter sein kann. Etwas wie "für den Wert in umgekehrt (p)" fügt keine signifikante Menge an Overhead hinzu (wenn es mit irgendeiner anderen Iteration verglichen wird). 'p [:: - 1]' und 'p.reverse()' sind beide 'O (N)', aber 'reversed (p)' ist 'O (1)'. Natürlich ist es "O (N)", aber ich wiederhole es auf "p" ohne umzukehren. – Blckknght

Antwort

6

reverse kehrt die Liste in-place finden the manual, während [::-1] in umgekehrter Reihenfolge eine neue Liste gibt.

Versuchen Sie print(p) nach dem Aufruf p.reverse(), werden Sie den Unterschied sehen.

+0

@ M.Jones Wenn Sie der Meinung sind, dass diese Antwort zur Lösung Ihres Problems beigetragen hat, markieren Sie diese bitte als "akzeptiert", indem Sie auf das grüne Häkchen klicken. Dies wird der Community helfen, den Fokus auf unbeantwortete Fragen zu legen. – Lahiru

Verwandte Themen