Learn back-end development by writing real code
Boot.dev Blog ยป Python ยป Complete Guide to Removing Elements From Lists in Python

Complete Guide to Removing Elements From Lists in Python

By Lane Wagner on Dec 9, 2021

While lists aren’t the most efficient data structure if you’ll be doing lots of deleting from the middle, there are definitely good ways to accomplish the task. The built-in remove() method should be your first option. Let’s go over some examples.

Remove element in Python list by value

primes = [2, 3, 5, 5, 7, 11]

primes.remove(5)

print(primes)
# [2, 3, 5, 7, 11]

primes.remove(5)
# [2, 3, 7, 11]

primes.remove(5)
# careful, this will throw an error
# ValueError: list.remove(x): x not in list

If you want to safely remove items, and you aren’t sure if they exist in the list or not, you can either catch the error:

try:
	primes.remove(5)
except Exception as e:
	print("not in list")

Or, you can check for existence first:

if 5 in primes:
	primes.remove(5)

Remove an element in Python list by index

The del statement is a built-in keyword that allows you to remove items from lists. The simplest example deletes the item at a given index.

primes = [2, 3, 5, 5, 7, 11]

# delete the second item
del primes[1]

print(primes)
# [2, 5, 5, 7, 11]

Again, you need to be careful. If the index doesn’t exist an error will be raised.

primes = [2, 3, 5, 5, 7, 11]

# delete the eleventh item
del primes[10]

IndexError: list assignment index out of range

if len(primes) >= 10:
	del primes[10]

Get a back-end job without spending $10k on a bootcamp

  • Learn Python, Javascript and Go
  • Build the professional projects you need to land your first job
  • Spend about 6 months (when done part-time)
  • Pricing as low as $24/month*
  • No risk. Cancel anytime.

Remove multiple of items from a python list

primes = [2, 3, 5, 5, 7, 11]

# deleting items from 2nd to 4th
del primes[1:4]

print(primes)
# [2, 7, 11]

Remove item by index and return it

The .pop() method removes an item from a list by index and returns that item.

primes = [2, 3, 5, 7]

# pop the second element
popped = primes.pop(1)

print("popped:", popped)
# 3

print("list:", primes)
# [2, 5, 7]

If you don’t pass an index parameter to pop() it will default to -1 and remove the last element from the list. Just like the other methods, if you pass in a number too large, you’ll get the following error.

IndexError: pop index out of range

Learn back-end without spending $10,000+ on a bootcamp

  • Write modern code in JavaScript, Python and Go
  • Build and deploy real backend projects to your personal portfolio
  • Compete in the job market by mastering computer science fundamentals

Related Reading