Was ist der Unterschied zwischen Liste [-1:] [0] und Liste [len (Liste) -1]?
Frage
Aus Furcht, dass Sie sagen, das letzte Element einer Python-Liste wollen: Was ist der Unterschied zwischen
myList[-1:][0]
und
myList[len(myList)-1]
Ich dachte, gab es keinen Unterschied, aber dann habe ich versucht, diese
>>> list = [0]
>>> list[-1:][0]
0
>>> list[-1:][0] += 1
>>> list
[0]
>>> list[len(list)-1] += 1
>>> list
[1]
Ich war ein wenig überrascht ...
Lösung
Wenn Sie schneiden [-1:], die zurückgegebene Liste ist eine flache Kopie verweisen nicht. so [-1:] [0] ändert die neue Liste. [Len (Liste) -1] ist anhand letztes Objekt.
Andere Tipps
list[-1:]
erstellt eine neue Liste. Um das gleiche Verhalten wie list[len(list)-1]
es hätte einen Blick auf eine Art list
zurückzukehren, aber wie gesagt, erstellt es eine neue temporäre Liste. Sie fahren Sie dann die temporäre Liste zu bearbeiten.
Wie auch immer, wissen Sie, Sie list[-1]
für die gleiche Sache verwenden können, nicht wahr?
Slicing schafft Kopie (flache Kopie). Es wird oft als eine flache Kopie Idiom verwendet.
d.
list2 = list1[:]
entspricht
import copy
list2 = copy.copy(list1)