How do you remove something in python?

In Python, use list methods clear(), pop(), and remove() to remove items (elements) from a list. It is also possible to delete items using del statement by specifying a position or range with an index or slice.

  • Remove all items: clear()
  • Remove an item by index and get its value: pop()
  • Remove an item by value: remove()
  • Remove items by index or slice: del
  • Remove items that meet the condition: List comprehensions

See the following article on how to add an item to a list.

  • Add an item to a list in Python (append, extend, insert)

Remove all items: clear()

You can remove all items from the list with clear().

l = [0, 1, 2]

l.clear()
print(l)
# []

Remove an item by index and get its value: pop()

You can remove the item at the specified position and get its value with pop().

The index at the beginning is 0 (zero-based indexing).

l = [0, 10, 20, 30, 40, 50]

print(l.pop(0))
# 0

print(l)
# [10, 20, 30, 40, 50]

print(l.pop(3))
# 40

print(l)
# [10, 20, 30, 50]

You can use negative values to specify the position from the end. The index at the end is -1.

print(l.pop(-2))
# 30

print(l)
# [10, 20, 50]

If the argument is omitted, the last item is deleted.

print(l.pop())
# 50

print(l)
# [10, 20]

Specifying a nonexistent index raises an error.

# print(l.pop(100))
# IndexError: pop index out of range

Note that pop(0), which removes the first item, is an O(n) operation and inefficient. See the official wiki for the computational complexity of various operations on list.

  • TimeComplexity - Python Wiki

The deque type is provided in the standard library collections module to remove the first item with O(1). For example, if you want to treat data as a queue (FIFO), it is more efficient to use deque.

  • Deque with collections.deque in Python

Remove an item by value: remove()

You can remove the first item from the list where its value is equal to the specified value with remove().

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']

If the list contains more than one matching the specified value, only the first is deleted.

l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']

To remove multiple items that satisfy the condition at once, use the list comprehensions described below.

Specifying a nonexistent value raises an error.

# l.remove('xxx')
# ValueError: list.remove(x): x not in list

You can use in to check if the list contains the item.

  • in operator in Python (for list, string, dictionary, etc.)

Remove items by index or slice: del

clear(), pop(), and remove() are methods of list. You can also remove elements from a list with del statements.

Specify the item to be deleted by index. The first index is 0, and the last is -1.

l = [0, 10, 20, 30, 40, 50]

del l[0]
print(l)
# [10, 20, 30, 40, 50]

del l[3]
print(l)
# [10, 20, 30, 50]

del l[-1]
print(l)
# [10, 20, 30]

del l[-2]
print(l)
# [10, 30]

You can delete multiple items with slice.

l = [0, 10, 20, 30, 40, 50]
del l[2:5]
print(l)
# [0, 10, 50]

l = [0, 10, 20, 30, 40, 50]
del l[:3]
print(l)
# [30, 40, 50]

l = [0, 10, 20, 30, 40, 50]
del l[-2:]
print(l)
# [0, 10, 20, 30]

It is also possible to delete all items by specifying the entire range.

l = [0, 10, 20, 30, 40, 50]
del l[:]
print(l)
# []

You can also specify step as [start:stop:step].

l = [0, 10, 20, 30, 40, 50]
del l[::2]
print(l)
# [10, 30, 50]

See the following article for details on slices.

  • How to slice a list, string, tuple in Python

Remove items that meet the condition: List comprehensions

Removing items that satisfy the condition is equivalent to extracting items that do not satisfy the condition.

For this purpose, list comprehensions are used.

  • List comprehensions in Python

An example of removing odd or even items (= keeping even or odd items) is as follows. % Is the remainder operator, and i % 2 is the remainder of dividing i by 2.

In list comprehension, a new list is generated. Unlike the list type method or del statement introduced so far, the original list is not changed.

l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print([i for i in l if i % 2 == 0])
# [0, 2, 4, 6, 8]

print([i for i in l if i % 2 != 0])
# [1, 3, 5, 7, 9]

print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

See the following article for details on extracting elements using list comprehensions.

  • Extract, replace, convert elements of a list in Python

Other examples are as follows.

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'David']

print([s for s in l if s != 'Bob'])
# ['Alice', 'Charlie', 'David']

print([s for s in l if s.endswith('e')])
# ['Alice', 'Charlie']

See the following article for examples for a list of strings.

  • Extract and replace elements that meet the conditions of a list of strings in Python

If you want to remove duplicate elements, use set().

  • Remove/extract duplicate elements from list in Python

print(list(set(l)))
# ['Charlie', 'Bob', 'David', 'Alice']

What is remove () in Python?

In this tutorial, we will learn about the Python List remove() method with the help of examples. The remove() method removes the first matching element (which is passed as an argument) from the list.

How do you remove something from a file in Python?

The same can be accomplished using the seek() method by changing the pointer position so we don't need to open a file twice..
Open file in the read and write mode ( r+ ).
Read all lines from a file into the list..
Move the file pointer to the start of a file using seek() method..
Truncate the file using the truncate() method..

How do I remove specific items from a set in Python?

Python Set remove() Method The remove() method removes the specified element from the set. This method is different from the discard() method, because the remove() method will raise an error if the specified item does not exist, and the discard() method will not.

How do I remove an item from a string in Python?

Using translate(): translate() is another method that can be used to remove a character from a string in Python. translate() returns a string after removing the values passed in the table. Also, remember that to remove a character from a string using translate() you have to replace it with None and not "" .