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 ...

War es hilfreich?

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top