首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >del、remove和pop在列表上的区别

del、remove和pop在列表上的区别
EN

Stack Overflow用户
提问于 2012-07-17 18:21:41
回答 7查看 2M关注 0票数 1.1K
代码语言:javascript
复制
>>> 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]
>>> 

上面三种从列表中删除元素的方法有什么不同吗?

EN

回答 7

Stack Overflow用户

发布于 2012-07-17 18:25:05

如果需要返回值,请使用del按索引删除元素,使用pop()按索引删除元素,使用remove()按值删除元素。最后一个需要搜索列表,如果列表中没有出现这样的值,则引发ValueError

当从n元素列表中删除索引i时,这些方法的计算复杂性为

代码语言:javascript
复制
del     O(n - i)
pop     O(n - i)
remove  O(n)
票数 249
EN

Stack Overflow用户

发布于 2017-01-16 18:27:18

由于没有人提到它,请注意,由于列表切片,del (与pop不同)允许删除一定范围的索引:

代码语言:javascript
复制
>>> lst = [3, 2, 2, 1]
>>> del lst[1:]
>>> lst
[3]

这还允许在索引不在列表中时避免IndexError

代码语言:javascript
复制
>>> lst = [3, 2, 2, 1]
>>> del lst[10:]
>>> lst
[3, 2, 2, 1]
票数 112
EN

Stack Overflow用户

发布于 2017-08-08 23:33:27

其他人已经回答得很好了。来自我这一端的这一条:)

显然,pop是唯一返回值的程序,remove是唯一搜索对象的程序,而del将自己限制为一个简单的删除。

票数 67
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11520492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档