以a=[1,2,3] 為例,似乎使用del, remove, pop一個元素2 之后 a都是為 [1,3], 如下:http://Novell.Me
- >>> 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]
- >>>
CopyRight http://novell.me
那么Python對於列表的del, remove, pop操作,它們之間有何區別呢?
首先,remove 是刪除首個符合條件的元素。並不是刪除特定的索引。如下例: 版權所有,未經Novell迷允許,不得轉載!
- >>> a = [0, 2, 2, 3]
- >>> a.remove(2)
- >>> a
- [0, 2, 3]
而對於 del 來說,它是根據索引(元素所在位置)來刪除的,如下例:
- >>> a = [3, 2, 2, 1]
- >>> del a[1]
- [3, 2, 1]
第1個元素為a[0] --是以0開始計數的。則a[1]是指第2個元素,即里面的值2. 本文轉載自http://novell.me
最后我們再看看pop
- >>> a = [4, 3, 5]
- >>> a.pop(1)
- 3
- >>> a
- [4, 5]
http://Novell.Me
pop返回的是你彈出的那個數值。
所以使用時要根據你的具體需求選用合適的方法。
另外它們如果出錯,出錯模式也是不一樣的。注意看下面區別:
- >>> a = [4, 5, 6]
- >>> a.remove(7)
- Traceback (most recent call last):
- File "", line 1, in
- ValueError: list.remove(x): x not in list
- >>> del a[7]
- Traceback (most recent call last):
- File "", line 1, in
- IndexError: list assignment index out of range
- >>> a.pop(7)
- Traceback (most recent call last):
- File "", line 1, in
- IndexError: pop index out of range