Как удалить элемент списка в Python?
Чтобы удалить элемент из списка в Python, можно воспользоваться одним из методов списков:
- li.remove(x) – удаляет из списка li первый попавшийся элемент, имеющий значение x. Если элемента с указанным значением в списке не окажется, будет вызвано исключение ValueError (см. пример №1).
- li.pop([i]) – удаляет из списка li элемент с указанным индексом i, а затем возвращает его. Если индекс не указан (параметр необязательный), удаляется последний элемент списка, т.к. по умолчанию i принимается равным -1.
- li.clear() – удаляет все элементы из списка.
# Создаем список для манипуляций.
li = ['a', 'b', 'c', 'd']
# Выведем для наглядности
print('Стартовый список:', li, end='\n\n')
# Удаляем 'b' (изменяем сам список).
li.remove('b')
# Получим ['a', 'c', 'd']
print('li.remove("b") ->', li, end='\n\n')
# Удаляем элемент списка с индексом 0.
elem = li.pop(0)
# Выведет a.
print('li.pop(0) ->', elem)
# Выведет ['c', 'd']
print('Теперь li ->', li, end='\n\n')
# Удаляем последний элемент списка.
elem = li.pop()
# Выведет d.
print('li.pop() ->', elem)
# Выведет ['c']
print('Теперь li ->', li, end='\n\n')
# Очищаем список.
li.clear()
# Выведет []
print('li.clear() ->', li)
Стартовый список: ['a', 'b', 'c', 'd']
li.remove("b") -> ['a', 'c', 'd']
li.pop(0) -> a
Теперь li -> ['c', 'd']
li.pop() -> d
Теперь li -> ['c']
li.clear() -> []
Пример №1. Методы для удаления элементов списка в Пайтон.
Также для удаления элементов списка могут быть использованы срезы и универсальный оператор del (см. пример №2).
# Создаем список для манипуляций.
li = ['a', 'b', 'c', 'd', 'e']
# Выведем для наглядности.
print('Стартовый список:', li, end='\n\n')
# Удаляем 'b' (изменяем сам список).
del li[1]
# Получим ['a', 'c', 'd', 'e'].
print('del li[1] ->', li, end='\n\n')
# Удаляем срез из двух элементов.
del li[-2:]
# Получим ['a', 'c'].
print('del li[-2:] ->', li, end='\n\n')
# Восстанавливаем список.
li = ['a', 'b', 'c', 'd', 'e']
# Выводим для наглядности.
print('Стартовый список:', li, end='\n\n')
# Удаляем 'b' через срез.
li[1:2] = []
# Получим ['a', 'c', 'd', 'e'].
print('li[1:2] = [] ->', li, end='\n\n')
# Удаляем срез из двух элементов.
li[-2:] = []
# Получим ['a', 'c'].
print('li[-2:] = [] ->', li, end='\n\n')
# Очищаем список.
li = []
# Выведет [].
print('li = [] ->', li)
Стартовый список: ['a', 'b', 'c', 'd', 'e']
del li[1] -> ['a', 'c', 'd', 'e']
del li[-2:] -> ['a', 'c']
Стартовый список: ['a', 'b', 'c', 'd', 'e']
li[1:2] = [] -> ['a', 'c', 'd', 'e']
li[-2:] = [] -> ['a', 'c']
li = [] -> []
Пример №2. Удаление элементов списка при помощи срезов и оператора del.
Если требуется удалить не один, а несколько элементов, соответствующих некоторому условию, можно воспользоваться циклом, генератором или соответствующей встроенной функцией для обхода элементов списка с выборочным удалением необходимых из них (см. пример №3).
''' 1-й вариант '''
# Создаем список для манипуляций.
li = ['a', 'bc', 'def', 'g']
# Выведем для наглядности.
print('Стартовый список:', li)
# Стартовое значение индекса.
i = 0
# Длина списка.
ln = len(li)
# Запускаем цикл по индексам списка.
while i < ln:
# Если в строке более одного символа.
if len(li[i]) > 1:
# Удаляем элемент.
del li[i]
# Не забываем уменьшить длину списка,
# иначе индекс может выйти за его пределы.
ln -= 1
else:
# Если элемент удален не был,
# наращиваем индекс.
i += 1
# Получим ['a', 'g'].
print('Конечный результат: ', li, end='\n\n')
''' 2-й вариант '''
# Восстанавливаем список.
li = ['a', 'bc', 'def', 'g']
# Выведем для наглядности.
print('Стартовый список:', li)
# Можно и через генератор списков.
li = [x for x in li if len(x) < 2]
# Получим ['a', 'g'].
print('Конечный результат: ', li, end='\n\n')
''' 3-й вариант '''
# Восстанавливаем список.
li = ['a', 'bc', 'def', 'g']
# Выведем для наглядности.
print('Стартовый список:', li)
# Используем фильтрацию эл-тов.
li = list(filter(lambda x: len(x) < 2, li))
# Получим ['a', 'g'].
print('Конечный результат: ', li)
Стартовый список: ['a', 'bc', 'def', 'g']
Конечный результат: ['a', 'g']
Стартовый список: ['a', 'bc', 'def', 'g']
Конечный результат: ['a', 'g']
Стартовый список: ['a', 'bc', 'def', 'g']
Конечный результат: ['a', 'g']
Пример №3. Удаление элементов списка по условию.
Подробнее о списках в Питоне можно почитать в параграфе «Списки в Python» нашего учебника, а порешать задачи – в соответствующем разделе сборника задач.