5 Best Ways to Remove an Element from a List in Python

Rate this post

πŸ’‘ Problem Formulation: When working with lists in Python, you may need to remove elements based on their value or index. This article illustrates 5 methods to do so. For instance, from the list [1, 2, 3, 'apple', 4] you might want to remove the element 'apple' resulting in [1, 2, 3, 4].

Method 1: Using remove() Method

The remove() method in Python removes the first occurrence of a value from a list. If the value is not present, it throws a ValueError. This method is simple to use and does not require you to know the index of the element you want to remove.

Here’s an example:

fruits = ['apple', 'banana', 'cherry', 'apple']


['banana', 'cherry', 'apple']

This example shows the removal of the first occurrence of ‘apple’ from the list of fruits. Note that only the first ‘apple’ is removed, and the second ‘apple’ remains in the list.

Method 2: Using pop() Method

The pop() method removes the element at a given index and returns it. If no index is specified, pop() removes and returns the last item in the list. It’s useful when the position of the element is known or when you need the removed element.

Here’s an example:

numbers = [1, 2, 3, 4, 5]
removed_element = numbers.pop(2)  # removes and returns the element at index 2
print("Removed element:", removed_element)


[1, 2, 4, 5]
Removed element: 3

By using pop(2), we removed the element at index 2 which was 3, and the method returned it. This way, we can also keep track of the removed item.

Method 3: Using Del Statement

The del statement in Python is used to delete objects. When it comes to lists, it can be used to remove a slice of elements or a single element by specifying its index. This method is efficient when you know the exact index of the element you want to delete.

Here’s an example:

colors = ['red', 'green', 'blue', 'yellow']
del colors[1]  # removes the element at index 1, which is 'green'


['red', 'blue', 'yellow']

This snippet of code uses del to delete the second item (‘green’) in the list of colors. After the deletion, the list is updated to show only the remaining elements.

Method 4: Using List Comprehension

List comprehension is a concise way to create lists. It can also be used to create a new list that excludes elements that meet certain conditions. It is a powerful method when you want to remove multiple elements that satisfy a condition.

Here’s an example:

numbers = [1, 2, 3, 4, 5, 6]
numbers = [x for x in numbers if x != 3]  # create a new list without the value 3


[1, 2, 4, 5, 6]

In this code, list comprehension is used to create a new list that contains all the elements from the original list except the value 3. The new list is then assigned back to the variable numbers.

Bonus One-Liner Method 5: Using filter() Function

The filter() function constructs an iterator from elements of an iterable for which a function returns true. In Python, it is often combined with a lambda function to filter out elements. This method does not modify the original list but creates a new list or iterator based on the condition.

Here’s an example:

ages = [22, 25, 29, 21]
ages_filtered = filter(lambda x: x != 25, ages)  # creates an iterator excluding age 25
ages_filtered_list = list(ages_filtered)  # convert the iterator to a list


[22, 29, 21]

This example uses a filter() function with a lambda to exclude 25 from the list of ages. It returns a new filtered list without modifying the original one.


  • Method 1: remove(). Easy to use. Removes the first occurrence of a value. Throws an error if the value is not found.
  • Method 2: pop(). Removes by index and returns the removed element. Useful when element position is known or need to use the removed element.
  • Method 3: Del Statement. Directly deletes elements or slices by index. Fast operation but requires knowing the exact index.
  • Method 4: List Comprehension. Allows for condition-based removal and creates a new list. Ideal for filtering values with a condition.
  • Bonus Method 5: filter() Function. Creates an iterator from elements that match a condition, resulting in a new list. Does not affect the original list.