以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3], 如下: 内容来自Novell迷网站
- >>> 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]
- >>>
版权所有,未经Novell迷允许,不得转载!
那么Python对于列表的del, remove, pop操作,它们之间有何区别呢?
Novell迷网站內容,版权所有
首先,remove 是删除首个符合条件的元素。并不是删除特定的索引。如下例:
http://novell.me
本文引用自http://novell.me
- >>> a = [0, 2, 2, 3]
- >>> a.remove(2)
- >>> a
- [0, 2, 3]
而对于 del 来说,它是根据索引(元素所在位置)来删除的,如下例:
Novell迷网站內容,版权所有
本文引用自http://novell.me
- >>> a = [3, 2, 2, 1]
- >>> del a[1]
- [3, 2, 1]
第1个元素为a[0] --是以0开始计数的。则a[1]是指第2个元素,即里面的值2. http://Novell.Me
最后我们再看看pop
内容来自http://novell.me
- >>> a = [4, 3, 5]
- >>> a.pop(1)
- 3
- >>> a
- [4, 5]
本文来自Novell迷网站 http://novell.me
pop返回的是你弹出的那个数值。
本文转载自http://novell.me
所以使用时要根据你的具体需求选用合适的方法。 本文来自Novell迷网站 http://novell.me
另外它们如果出错,出错模式也是不一样的。注意看下面区别:
http://Novell.Me
- >>> a = [4, 5, 6]
- >>> a.remove(7)
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- ValueError: list.remove(x): x not in list
- >>> del a[7]
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- IndexError: list assignment index out of range
- >>> a.pop(7)
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- IndexError: pop index out of range
内容来自Novell迷网站
注:本文引自stackoverflow Q11520492 ,由本站原创翻译。 Novell迷网站內容,版权所有
Novell迷,迷Novell
转载请注明出处!本文地址 http://novell.me/master-diary/2014-06-05/difference-between-del-remove-and-pop-on.html
(责任编辑:Novell迷)