Sunday, 21 May 2017

python - Difference between del, remove and pop on lists




>>> 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]
>>>


Is there any difference between the above three methods to remove an element from a list?


Answer



Yes, remove removes the first matching value, not a specific index:




>>> a = [0, 2, 3, 2]
>>> a.remove(2)
>>> a
[0, 3, 2]


del removes the item at a specific index:



>>> a = [3, 2, 2, 1]

>>> del a[1]
>>> a
[3, 2, 1]


and pop removes the item at a specific index and returns it.



>>> a = [4, 3, 5]
>>> a.pop(1)
3

>>> a
[4, 5]


Their error modes are different too:



>>> 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


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...