Удаление по значению: remove()
Метод pop() удаляет элемент по его позиции. Но часто вы знаете, что хотите удалить, а не где оно находится. Для этого у списков есть метод remove(): в скобках вы пишете значение, и он удаляет элемент с этим значением:
guests = ["Анна", "Игорь", "Люба", "Макс"]
guests.remove("Игорь")
print(guests)Вывод:
['Анна', 'Люба', 'Макс']Если значение встречается в списке несколько раз, remove() удаляет только первое из них, считая с начала:
numbers = [3, 7, 3, 9]
numbers.remove(3)
print(numbers)Вывод:
[7, 3, 9]В отличие от pop(), метод remove() не возвращает удалённый элемент. Его значение вы и так знаете.
Если такого значения в списке нет вообще, программа остановится с ошибкой. Строки сравниваются точно, поэтому "игорь" с маленькой буквы — не то же самое, что "Игорь":
guests = ["Анна", "Игорь", "Люба"]
guests.remove("игорь")Программа завершится с такой ошибкой:
Traceback (most recent call last):
File "<exec>", line 2, in <module>
ValueError: list.remove(x): x not in listValueError — это ошибка значения. Здесь x обозначает значение, которое вы хотели удалить, а not in list говорит, что его нет в списке. В следующем упражнении вы узнаете, как заранее проверить, есть ли значение в списке.
Задание
- 1
Прогноз погоды обещает, что дождя не будет. Удалите
"зонт"из спискаpackingс помощьюremove(). - 2
Выведите
packing. Вывод должен быть таким:['паспорт', 'крем от загара', 'солнечные очки'].