以免说你想要 python 列表的最后一个元素:有什么区别
myList[-1:][0]
和
myList[len(myList)-1]
我认为没有区别,但后来我尝试了这个
>>> list = [0]
>>> list[-1:][0]
0
>>> list[-1:][0] += 1
>>> list
[0]
>>> list[len(list)-1] += 1
>>> list
[1]
我有点惊讶……
如果使用切片 [-1:],则返回的列表是浅拷贝,而不是引用。所以 [-1:][0] 修改了新列表。[len(list)-1] 是对最后一个对象的引用。
list[-1:]
创建一个新列表。list[len(list)-1]
要获得与必须返回某种视图相同的行为list
,但正如我所说,它会创建一个新的临时列表。然后您继续编辑临时列表。
无论如何,你知道你可以list[-1]
用于同样的事情,对吧?
切片创建副本(浅副本)。它通常用作浅拷贝习语。
IE
list2 = list1[:]
相当于
import copy
list2 = copy.copy(list1)