Ich hoffe, dass dies hilft zu erklären, was es bedeutet, eine neue Liste zu erstellen:
>>> lista = [1, 2, 3, 4]
>>> listb = lista
>>> print lista
[1, 2, 3, 4]
>>> print listb
[1, 2, 3, 4]
>>> lista[0] = 3
>>> print listb
[3, 2, 3, 4]
>>> listc = lista[:]
>>> print listc
[3, 2, 3, 4]
>>> lista[0] = 1
>>> print listc
[3, 2, 3, 4]
Wenn Sie listb = lista
Sie erstellen keine neue Liste, sondern einen zusätzlichen Verweis auf dieselbe Liste. Dies wird durch die Änderung des ersten Elements in lista mit lista[0] = 3
ändert sich auch das erste Element in der Listeb. Wenn man jedoch die Listea in die Listec mit listc = lista[:]
kopieren Sie die Werte. Beim Ändern des ersten Elements von lista zurück auf 1 mit lista[0] = 1
ist das erste Element der Listec immer noch 3.
Für die Geschwindigkeit würde ich erwarten, dass das Schneiden langsamer ist, aber das sollte no eine Überlegung bei der Auswahl sein. Wie ich gezeigt habe, haben beide eine sehr unterschiedliche Auswirkung und es hängt davon ab, was Sie mit der Liste machen wollen, und nicht von der Geschwindigkeit ( dies ist allgemein. Es gibt Gelegenheiten, bei denen die Geschwindigkeit wichtig sein kann ).