В чем разница между делом, удалением и попаданием в списки Pythonа

Как часто бывает, Python предлагает несколько средств для достижения одного и того же.
Если вам нужно удалить элемент из списка, вы можете использовать любое из следующих средств.
list.remove()
или list.pop()
функции или встроенный оператор del
.
В примерах ниже мы рассмотрим каждый из этих подходов и обсудим их различия и компромиссы.
Удаление списка Python по значению
list.remove()
удаляет первый элемент списка, значение которого равно переданному аргументу.
При использовании этого метода вы обычно не знаете или не заботитесь о том, какой индекс удаляемого элемента.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.remove('Cindy')
>>> names
['Bob', 'Noah']
Будьте внимательны при использовании этого метода.
Если элемента, который вы пытаетесь удалить, нет в списке,
на Пайтоне будет “Ошибка оценки”.
>>> names = ['Bob', 'Noah']
>>> names.remove('Cindy')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
Для навигации по этой проблеме, вам нужно будет проверить, не является ли пункт
существует в списке перед попыткой list.remove()
it.
>>> names = ['Bob', 'Noah']
>>> if 'Cindy' in names:
... names.remove('Cindy')
...
>>>
Удаление списка Python по индексу
Если Вы знаете индекс элемента, который хотите удалить, Вы можете использовать метод list.pop()
.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop(1)
'Cindy'
>>> names
['Bob', 'Noah']
list.pop()
удаляет элемент в указанном индексе и возвращает его.
Если Вы не дадите list.pop()
никакого индекса, то он удалит последний элемент списка.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop()
'Noah'
>>> names
['Bob', 'Cindy']
Удаление списка Python от del
Другой вариант удаления элемента из списка по индексу - использование встроенного оператора del
.
В отличие от list.pop()
оператор del
не возвращает удаленное значение.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[1]
>>> names
['Bob', 'Noah']
Оператор del
также более гибкий, чем list.pop()
.
Вы можете использовать его для удаления диапазонов значений из списка.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[0:2]
>>> names
['Noah']
Вы также можете использовать его для очистки всего списка.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[:]
>>> names
[]
Как видно из вышеизложенного, каждый подход имеет несколько различные варианты использования.
Тем не менее, если все, что вам нужно - это удалить один элемент из списка, не помня его значения, то сработает любой из методов.
Используйте тот, который лучше читается в более широком контексте вашего кода.
Сопутствующая статья - Python List
- В чем разница между списочными методами добавлять и расширять
- Как преобразовать список в струну на Python
- Как соединить два или несколько списков на Python
- Как быстро проверить, существует ли значение в списке Python
- Как дублировать список на Python