David Y.
—In Python, how can I delete a list item by its value rather than its position?
Python’s list.remove
method provides this functionality. Given a value, it will search for that value in the list and delete the first instance it finds. If the supplied value is not found in the list, it raises a ValueException
error. For example:
mylist = ['a', 'b', 'c', 'c', 'd'] mylist.remove('c') # will remove the first '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('e') # will throw an exception except ValueError: print('Element to delete not found in list')
If you would like to remove all elements with a given value from a list, not just the first one, you can do this efficiently by rebuilding the list without those elements in a list comprehension:
mylist = ['a', 'b', 'c', 'c', 'd'] mylist = [item for item in mylist if item != 'c'] # rebuild the list without 'c's 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.