不要说你想要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]
我有点惊讶......
答案 0 :(得分:14)
如果使用切片[-1:],则返回的列表是浅拷贝,而不是引用。所以[-1:] [0]修改新列表。 [len(list)-1]是对最后一个对象的引用。
答案 1 :(得分:9)
list[-1:]
创建一个新列表。要获得与list[len(list)-1]
相同的行为,它必须返回某种list
的视图,但正如我所说,它会创建一个新的临时列表。然后,您可以继续编辑临时列表。
无论如何,你知道你可以使用list[-1]
做同样的事情,对吗?
答案 2 :(得分:3)
切片创建副本(浅拷贝)。它通常用作浅拷贝习语。
即
list2 = list1[:]
相当于
import copy
list2 = copy.copy(list1)