David Y.
—I’ve seen a few different ways to remove an item from a list in Python:
del
(e.g. del mylist[2]
).remove()
(e.g. mylist.remove(2)
).pop()
. (e.g. mylist.pop(2)
)What are the advantages and disadvantages of each and when should I use one rather than another?
While these three methods remove an item from a list, they all work differently.
The del
method is useful when deleting an item at a specific position in the list. For example:
mylist = ['a', 'b', 'c', 'd'] del mylist[2] # will delete the item at index 2, that is 'c' print(mylist) # will print ['a', 'b', 'd']
We can even delete multiple items by using a slice:
mylist = ['a', 'b', 'c', 'd'] del mylist[1:3] # will delete the items at indices 1 and 2, that is 'b' and 'c' print(mylist) # will print ['a', 'd']
The list.remove()
method is useful when deleting an item by value, regardless of its position. It searches the list for the provided value and deletes the first one it finds, raising a ValueError
exception if it does not find the item. For example:
mylist = ['a', 'b', 'c', 'c', 'd'] mylist.remove('c') print(mylist) # will print ['a', 'b', 'c', 'd'] mylist.remove('c') # will remove the remaining 'c' print(mylist) # will print ['a', 'b', 'd'] try: mylist.remove('c') # will raise a value error as there is no 'c' except ValueError: print('Value not found in list.')
The list.pop()
method called without any arguments allows us to use a Python list as a stack, removing and returning the last item in the list.
mylist = ['a', 'b', 'c', 'd'] popped = mylist.pop() print(popped) # will print 'd' print(mylist) # will print ['a', 'b', 'c']
You can specify an optional index argument for pop
to remove and return the item at a specific position:
mylist = ['a', 'b', 'c', 'd'] popped = mylist.pop(2) print(popped) # will print 'c' print(mylist) # will print ['a', 'b', 'd']
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODESConsidered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.