>>> a=[1,2,3]
>>> a.remove(2)
>>> a
[1, 3]
>>> a=[1,2,3]
>>> del a[1]
>>> a
[1, 3]
>>> a= [1,2,3]
>>> a.pop(1)
2
>>> a
[1, 3]
>>>
上面三种从列表中删除元素的方法有什么不同吗?
发布于 2012-07-17 18:25:05
如果需要返回值,请使用del
按索引删除元素,使用pop()
按索引删除元素,使用remove()
按值删除元素。最后一个需要搜索列表,如果列表中没有出现这样的值,则引发ValueError
。
当从n
元素列表中删除索引i
时,这些方法的计算复杂性为
del O(n - i)
pop O(n - i)
remove O(n)
发布于 2017-01-16 18:27:18
由于没有人提到它,请注意,由于列表切片,del
(与pop
不同)允许删除一定范围的索引:
>>> lst = [3, 2, 2, 1]
>>> del lst[1:]
>>> lst
[3]
这还允许在索引不在列表中时避免IndexError
:
>>> lst = [3, 2, 2, 1]
>>> del lst[10:]
>>> lst
[3, 2, 2, 1]
发布于 2017-08-08 23:33:27
其他人已经回答得很好了。来自我这一端的这一条:)
显然,pop
是唯一返回值的程序,remove
是唯一搜索对象的程序,而del
将自己限制为一个简单的删除。
https://stackoverflow.com/questions/11520492
复制相似问题