什么[-1:]列表之间的差[0]和列表[长度(列表)-1]?
题
免得说你想要一个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]修改新名单。 [长度(列表)-1]是参照最后一个对象。
其他提示
list[-1:]
创建一个新的列表。要获得相同的行为list[len(list)-1]
它会返回某种list
的一个观点,但正如我所说,它创建一个新的临时名单。这样就可以进行编辑的临时列表。
无论如何,你知道你可以用list[-1]
同样的事情,对吧?
切片创建复制(浅拷贝)。它通常用作浅拷贝成语。
即
list2 = list1[:]
等同于
import copy
list2 = copy.copy(list1)
不隶属于 StackOverflow