>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]
>>> a = [1,2,3]
>>> a = a[:-1]
>>> a
[1, 2]
>>>
Run Code Online (Sandbox Code Playgroud)
从列表中删除最后一个元素的上述方法之间有什么区别吗?
ggo*_*len 13
是。pop为O(1)并更改原始列表,而slice为O(n)并创建列表的副本。非正式地讲,该pop方法是对列表末尾元素的操作,并在CPython中定义为对的调用list_resize(self, Py_SIZE(self) - 1);。这不会遍历整个结构。
另一方面,list_slice分配一个新列表,并循环遍历旧列表中的条目,从头到尾-1,将对每个项目的引用复制到新列表中。
如果您要删除的是列表的最后一个元素,请使用pop。