Рубрики
Без рубрики

Список Python Удалить ()

В этом руководстве показано вам все, что вам нужно знать, чтобы помочь вам овладеть необходимым удалением () методом наиболее фундаментального типа контейнера данных в языке программирования Python. Определение и использование: метод List.remove (Element) удаляет первый вхождение элемента из существующего списка. Это, однако, не удалит все вхождения … Python List Удалить () Подробнее »

Автор оригинала: Chris.

В этом руководстве показано вам все, что вам нужно знать, чтобы помочь вам овладеть необходимым Удалить () Способ наиболее фундаментальных контейнеров типа данных в языке программирования Python.

Определение и использование :

list.remove (элемент) Способ удаляет первое возникновение элемент из существующего список . Это, однако, не удалит все вхождения элемента в списке!

Вот краткий пример:

>>> lst = [1, 2, 99, 4, 99]
>>> lst.remove(99)
>>> lst
[1, 2, 4, 99]

В первой строке примера вы создаете список лишенство . Затем вы удалите целочисленный элемент 99 из списка, но только его первое вхождение. Результатом является список только с четырьмя элементами [1, 2, 4, 99] .

Синтаксис :

Вы можете вызвать этот метод на каждом объекте списка в Python. Вот синтаксис:

list.remove (элемент)

Аргументы:

элемент Объект, который вы хотите удалить из списка. Только первый вхождение элемента удаляется.

Возвращаемое значение:

Метод list.remove (элемент) имеет возврат ценности Нет Отказ Он работает в существующем списке и, следовательно, не возвращает новый список с удаленным элементом

Видео:

Код головоломки:

Теперь вы знаете основы. Давайте углубим ваше понимание с коротким кодом головоломки – можешь решить это?

# Puzzle
presidents = ['Obama',
              'Trump',
              'Washington']
p2 = presidents[:2]
p2.remove('Trump')
print(presidents)
# What's the output of this code snippet?

Вы можете проверить решение на Приложение Finxter .

Обзор :

Существуют некоторые альтернативные способы удаления элементов из списка. Смотрите таблицу обзора:

lst.remove (x) Удалите элемент из списка (по значению)
lst.pop () Удалите элемент из списка (по индексу) и верните элемент
lst.clear () Удалите все элементы из списка
del lst [3] Удалите один или несколько элементов из списка (по индексу или ломтию)
Список понимания Удалите все элементы, которые соответствуют определенному условию

Далее вы погрузитесь в каждый из этих методов, чтобы получить глубокое понимание.

Статьи по Теме:

  • Окончательное руководство по спискам Python

Вот ваш бесплатный PDF чит-лист, показывающий вас все методы списка Python на одной простой странице. Нажмите на изображение, чтобы загрузить файл PDF с высоким разрешением, распечатать его и опубликовать его в свою офисную стену:

Удалить () – Удалить элемент по значению

Чтобы удалить элемент из списка, используйте list.remove (элемент) Метод вы уже видели ранее:

>>> lst = ["Alice", 3, "alice", "Ann", 42]
>>> lst.remove("Ann")
>>> lst
['Alice', 3, 'alice', 42]

Попробуй сам:

Метод идет слева направо и удаляет первый вхождение элемента, который равный для того, чтобы быть удаленным.

Удаленный элемент не существует

Если вы пытаетесь удалить элемент X из списка, но X не существует в списке, Python выдает ошибку значений:

>>> lst = ['Alice', 'Bob', 'Ann']
>>> lst.remove('Frank')
Traceback (most recent call last):
  File "", line 1, in 
    lst.remove('Frank')
ValueError: list.remove(x): x not in list

POP () – удалить элемент по индексу

По умолчанию, POP () Способ удаляет последний элемент из списка и возвращает элемент.

>>> lst = ['Alice', 'Bob', 'Ann']
>>> lst.pop()
'Ann'
>>> lst
['Alice', 'Bob']

Но вы также можете определить дополнительный аргумент индекса. В этом случае вы удалите элемент в данном индексе – немного известного секрета Python!

>>> lst = ['Alice', 'Bob', 'Ann']
>>> lst.pop(1)
'Bob'
>>> lst
['Alice', 'Ann']

Чисто() – Удалить все элементы

Очистить () Метод просто удаляет все элементы из заданного объекта списка.

>>> lst = ['Alice', 'Bob', 'Ann']
>>> lst.clear()
>>> lst
[]

Del – Удалить элементы по индексу или срезам

Этот трюк также относительно неизвестен среди начинающих Python:

  • Использовать del lst [индекс] Чтобы удалить элемент при индексе.
  • Использовать del lst [start: Stop] Чтобы удалить все элементы в ломтик Отказ
>>> lst = list(range(10))
>>> lst
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del lst[5]
>>> lst
[0, 1, 2, 3, 4, 6, 7, 8, 9]
>>> del lst[:4]
>>> lst
[4, 6, 7, 8, 9]

Связанные статьи в блоге:

  • Проверьте мой полный урожай нарезки, который делает вас главным слайком через 15 минут или около того!

Понимание списка – удалить элементы условно

Хорошо, это вроде мошенничество, потому что этот метод на самом деле не удаляет элементы из объекта списка. Это просто создает новый список с некоторыми элементами, которые соответствуют вашему состоянию.

Понимание списка является компактным способом создания списков. Простая формула [экспрессия + контекст].

  • Выражение: Что делать с каждым элементом списка?
  • Контекст: в каком списке элементы выбрать? Он состоит из произвольного количества для и если утверждения.

Пример [X для X в диапазоне (3)] Создает список [0, 1, 2] .

Вы также можете определить состояние, такое как все нечетные значения х% 2 == 1 в контексте, используя состояние, если. Это приводит нас к способу удаления всех элементов, которые не соответствуют определенным условиям в данном списке.

>>> lst = list(range(10))
>>> lst_new = [x for x in lst if x%2]
>>> lst_new
[1, 3, 5, 7, 9] 

Пока вы повторяете весь список лишенство , состояние х% 2 требует, чтобы элементы нечетными.

Связанные статьи в блоге:

  • Проверьте мой полный урок понимания списка для максимального обучения!

Список Python Удалить () Все

list.remove (x) Способ удаляет только первое вхождение элемента х из списка.

Но что, если вы хотите удалить все вхождения элемента х из данного списка?

Ответ – использовать простой цикл:

lst = ['Ann', 'Ann', 'Ann', 'Alice', 'Ann', 'Bob']
x = 'Ann'

while x in lst:
    lst.remove(x)

print(lst)
# ['Alice', 'Bob']

Вы просто называете Удалить () метод снова и снова до элемента х больше не в списке.

Список Python Удалить дубликаты

Как удалить все дубликаты данного значения в списке?

Наивный подход – пройти каждый элемент и проверять, существует ли этот элемент в списке. Если это так, удалите его. Однако это требует нескольких строк кода.

Короче и более лаконичный способ состоит в том, чтобы создать словарь из элементов в списке. Каждый элемент списка становится новым ключом к словарю. Все элементы, которые происходят несколько раз, будут присвоены к тому же ключу. Словарь содержит только уникальные ключевые ключи – не могут быть несколько равных клавиш.

В качестве значений словаря вы просто принимаете фиктивные значения (по умолчанию).

Связанные статьи в блоге:

  • Проверьте мой Ultimate Tutorial Tutorial для максимального обучения!

Затем вы просто преобразуете словарь обратно в список, выбрасывающие значения фиктивных значений. Поскольку словарные ключи остаются в том же порядке, вы не теряете информацию о заказе элементов оригинального списка.

Вот код:

>>> lst = [1, 1, 1, 3, 2, 5, 5, 2]
>>> dic = dict.fromkeys(lst)
>>> dic
{1: None, 3: None, 2: None, 5: None}
>>> duplicate_free = list(dic)
>>> duplicate_free
[1, 3, 2, 5]

Список Python Удалить () Если существует

Как удалить элемент из списка, но только если он существует?

Проблема в том, что если вы попытаетесь удалить элемент из списка, который не существует, Python бросает Ошибка ценности Отказ Вы можете избежать этого, проверяя членство в элементе, который будет удален первым:

>>> lst = ['Alice', 'Bob', 'Ann']
>>> lst.remove('Frank') if 'Frank' in lst else None
>>> lst
['Alice', 'Bob', 'Ann']

Это использует функцию One-Liner Python One-Liner условного назначения (также называемого The Terrary Operator).

Связанные статьи в блоге:

  • Проверьте мою тройное урок оператора и повысить свои навыки!

Список Python Удалить () Резьба безопасна

У вас есть несколько потоков, которые одновременно получают доступ к вашему списку? Тогда вы должны быть уверены, что операции списка (например, Удалить () ) на самом деле резьба безопасна Отказ

Другими словами: вы можете позвонить в Удалить () Операция в двух потоках в том же списке одновременно? (И вы можете быть уверены, что результат является значимым?)

Ответ да (если вы используете Mokef Cpython внедрение). Причина – Питона Блокировка глобального интерпретатора Это гарантирует, что поток, работающий в данный момент в этом коде, сначала завершит текущую базовую операцию Python, как определено реализацией CPYPHON. Только если оно завершится с помощью этой операции, сможет получить следующий поток для доступа к вычислительному ресурсу. Это обеспечивается сложной схемой блокировки в результате реализации CPYPHON.

Единственное, что вам нужно знать, состоит в том, что каждая основная операция в реализации CPYPHON является атомный Отказ Он выполнен полностью и сразу, прежде чем любой другой поток имеет возможность запустить на одном виртуальном двигателе. Поэтому нет условий расы. Примером для такого состояния гонки будет следующее: Первый поток считывает значение из списка, вторые потоки перезаписывают значение, и первая тема перезаписывает значение снова недействительным в операции второго потока.

Все операции Cpython являются потоковыми безопасными. Но если вы объединяете эти операции на функции более высокого уровня, это не в целом без резьбы, поскольку они состоят из многих (возможно, чередующихся) операций.

Куда пойти отсюда?

list.remove (элемент) Способ устраняет первое вхождение элемент от Список Отказ

Вы узнали INS и ауты этого важного способа списка Python.

Если вы продолжаете бороться с теми основными командами Python, и вы чувствуете застрявшие в своем прогрессе обучения, у меня есть что-то для вас: Python One-listers (Amazon Link).

В книге я дам вам тщательный обзор темы критических компьютерных наук, таких как машинное обучение, регулярное выражение, наука о данных, Numpy и Python Basics – все в одной линейке кода Python!

Получите книгу от Amazon!

Официальная книга Описание: Python One-Listers покажет читателям, как выполнить полезные задачи с одной строкой кода Python. Следуя краткому переподготовку Python, книга охватывает важные продвинутые темы, такие как нарезка, понимание списка, вещание, функции лямбда, алгоритмы, регулярные выражения, нейронные сети, логистические регрессии и др .. Каждая из 50 секций книг вводит проблему для решения, проходит читателя через навыки, необходимые для решения этой проблемы, затем предоставляет краткое однонаправленное решение Python с подробным объяснением.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/python-list-remove/”