- Как удалить повторяющиеся элементы из списка в Python
- Удаление повторяющихся элементов из списка в Python
- Способ 1: удаление дубликатов из списка Python с помощью set()
- Метод 2: удаление дубликатов из списка Python с использованием понимания списка
- Способ 3: удаление дубликатов из списка Python с помощью dict.fromkeys()
- Способ 4: удаление дубликатов из списка Python с помощью библиотеки Pandas
- Заключение:
- Способы удаления дубликатов из списка в Python
- Комментарии ( 0 ):
Как удалить повторяющиеся элементы из списка в Python
В этом руководстве по Python мы увидим как удалить повторяющиеся элементы из списка Python с наглядными примерами различных методов.
Как мы все знаем, Списки Python индексируются, поэтому они имеют элементы с одинаковыми значениями. Например:
list_with_duplicates = ['sam', 'tom', 'rob', 'betty', 'sam', 'rob']
Мы видим, что в приведенном выше списке Python у нас есть повторяющиеся элементы с разными номерами индексов. Мы хотим очистить этот список, удалив дубликаты. Давайте проверим различные способы удаления этих дубликатов.
Удаление повторяющихся элементов из списка в Python
Существует несколько различных способов удаления повторяющихся элементов из списка Python. Они есть:
- Используя Набор Структура данных
- С использованием Понимание списка
- Используя dict.fromkeys() метод
- С использованием Панды Библиотека
Способ 1: удаление дубликатов из списка Python с помощью set()
Одним из самых простых и эффективных способов удаления дубликатов из списка является использование набор. Набор — это встроенная структура данных Python, которая, как и математический набор, не может содержать повторяющиеся элементы.
Здесь мы преобразуем наш список в набор а затем снова преобразовать это набор в список.
В этом сценарии предположим, что у нас есть список, содержащий названия штатов в США. Однако в нашем списке есть несколько повторяющихся записей.
usa_states = ['Texas', 'California', 'New York', 'Texas', 'Florida', 'California', 'Georgia', 'New York', 'Texas'] usa_states_set = set(usa_states) usa_states = list(usa_states_set) print(usa_states)
['New York', 'Florida', 'California', 'Texas', 'Georgia']
Примечание: Порядок списка меняется, потому что набор не упорядочен в Python.
Таким образом, мы можем использовать установить базу данных в Python для удаления повторяющихся элементов в списке Python.
Метод 2: удаление дубликатов из списка Python с использованием понимания списка
питон Понимание списка это краткий способ создания списков. Мы можем использовать понимание списка вместе с если х не в условия для удаления дубликатов при сохранении порядка:
В этом примере у нас есть список популярных видов спорта в США на Python, но в нем есть дубликаты. Наша цель — устранить эти дубликаты, используя понимание списка:
usa_sports = ['Basketball', 'Baseball', 'Football', 'Basketball', 'Hockey', 'Football', 'Soccer', 'Basketball'] sports = [sport for i, sport in enumerate(usa_sports) if usa_sports.index(sport) == i] print(sports)
['Basketball', 'Baseball', 'Football', 'Hockey', 'Soccer']
Как мы видим, все повторяющиеся элементы удалены, а порядок сохранен.
Таким образом, мы можем использовать понимание списка в Python для удаления дубликатов в списке.
Способ 3: удаление дубликатов из списка Python с помощью dict.fromkeys()
Другой метод удаления дубликатов, который также поддерживает порядок элементов, заключается в использовании словарей Python. Словари не могут иметь повторяющихся ключей, поэтому мы можем использовать это в своих интересах.
Мы будем использовать dict.fromkeys() метод для преобразования элементов списка Python в ключи словаря Python, а затем снова преобразовать их в список Python с помощью список().
Здесь у нас есть список с названиями популярных сетей быстрого питания в США:
usa_fast_food = ['McDonalds', 'Subway', 'Starbucks', 'McDonalds', 'KFC', 'Subway', 'Burger King', 'Starbucks'] usa_fast_food = list(dict.fromkeys(usa_fast_food)) print(usa_fast_food)
Этот метод устранит дубликаты и сохранит порядок. Результат:
['McDonalds', 'Subway', 'Starbucks', 'KFC', 'Burger King']
Таким образом, мы можем использовать dict.fromkeys() в списке Python, чтобы удалить дубликаты.
Способ 4: удаление дубликатов из списка Python с помощью библиотеки Pandas
Наконец, если бы наш список был частью более сложной структуры данных, такой как кадр данныхмы могли бы использовать drop_duplicates() метод, предоставляемый Python Панды. drop_duplicates() удалит все повторяющиеся значения из кадры данных в Питоне.
Здесь у нас есть список публичных библиотек в разных городах США. Наш список содержит несколько повторяющихся записей, и мы стремимся устранить эти дубликаты с помощью Библиотека панд.
Во-первых, мы импортируем Панды и преобразовать список в Python DataFrameто мы удалим все дубликаты, используя drop_duplicates()а затем, наконец, мы преобразуем Python DataFrame в список с помощью к списку().
import pandas as pd usa_libraries = ['New York Public Library', 'Los Angeles Public Library', 'New York Public Library', 'Boston Public Library', 'Los Angeles Public Library'] df = pd.DataFrame(usa_libraries, columns=['Library']) df = df.drop_duplicates() usa_libraries = df['Library'].tolist() print(usa_libraries)
['New York Public Library', 'Los Angeles Public Library', 'Boston Public Library']
Таким образом, мы можем использовать Библиотека панд в Python для удаления дубликатов в списке.
Заключение:
В заключение мы узнали, что Python предлагает несколько мощных методов для удаления дубликатов из списка, таких как набор, dict.fromkeys(), понимание спискаи Библиотека панд. Каждый со своими плюсами и минусами. Мы должны видеть наши потребности и выбор мудро.
Вы можете прочитать следующие статьи:
Я Биджай Кумар, Microsoft MVP в SharePoint. Помимо SharePoint, последние 5 лет я начал работать над Python, машинным обучением и искусственным интеллектом. За это время я приобрел опыт работы с различными библиотеками Python, такими как Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn и т. д. для различных клиентов в США, Канаде, Великобритании, Австралии, Новая Зеландия и т. д. Проверьте мой профиль.
Способы удаления дубликатов из списка в Python
Удаление дубликатов списка достаточно простая задача. При этом, знание ее вариантов имеет большое практическое значение. И в сегодняшней статье мы рассмотрим варианты получения уникального списка элементов из исходной последовательности. И рассмотрим варианты реализации.
В наивном методе мы просто проходим по списку и добавляем первое вхождение элемента в новый список, игнорируя все остальные вхождения этого конкретного элемента.
# Код демонстрирует удаление дубликатов
# из списка наивным методом
# инициализация списка
my_list = [1, 3, 5, 6, 3, 5, 6, 1]
print («Оригинальный список : » + str(my_list))
# используем наивный метод
# чтобы убрать дубликаты
# из списка
li = []
for i in my_list:
if i not in li:
li.append(i)
# список после удаления дубликатов
print («список после удаления дубликатов : » + str(li))
Оригинальный список : [1, 3, 5, 6, 3, 5, 6, 1]
список после удаления дубликатов : [1, 3, 5, 6]
Использование генератора списков.
Данный метод аналогичен предыдущему, но использует запись в виде одной строки, с использованием генератора списков.
# Код демонстрирует удаление дубликатов
# из списка с помощью генератора списков
# инициализация списка
my_list = [1, 3, 5, 6, 3, 5, 6, 1]
print («Оригинальный список : » + str(my_list))
# используем генератор списка
# чтобы удалить дубликаты
li = []
[li.append(x) for x in my_list if x not in li]
# вывод списка после удаления элементов
print («Список после удаления дубликатов : » + str(li))
Оригинальный список : [1, 3, 5, 6, 3, 5, 6, 1]
список после удаления дубликатов : [1, 3, 5, 6]
Это самый популярный способ, с помощью которого дубликаты удаляются из списка. Но главным и заметным недостатком этого подхода является то, что в этом конкретном методе порядок элементов теряется.
# Код Python3 показывает как
# удалять дубликаты из списка методом set()
# инициализация списка
my_list = [1, 5, 3, 6, 3, 5, 6, 1]
print («Оригинальный список : » + str(my_list))
# используем set()
# чтобы удалить дубликаты из списка
my_list = list(set(my_list))
# вывод списка после удаления элементов
# не сохраняет порядок
print («Список после удаления дубликатов: » + str(my_list))
Оригинальный список : [1, 5, 3, 6, 3, 5, 6, 1]
Список после удаления дубликатов: [1, 3, 5, 6]
Генератор списка + enumarate().
Генератор списка в сочетании с функцией перечисления также может решить эту задачу. Он ищет уже существующие элементы и пропускает их добавление. Также сохраняет порядок списка.
# Код Python3 показывает как удалять дубликаты из списка
# используя генератор списков(list comprehension) + enumerate()
# инициализация списка
my_list = [1, 5, 3, 6, 3, 5, 6, 1]
print («Оригинальный список : » + str(my_list))
# используем list comprehension + enumerate()
# чтобы удалить дубликаты из списка
li = [i for n, i in enumerate(my_list) if i not in my_list[:n]]
# вывод списка после удаления элементов
print («Список после удаления дубликатов: » + str(li))
Оригинальный список : [1, 5, 3, 6, 3, 5, 6, 1]
Список после удаления дубликатов: [1, 5, 3, 6]
Модуль collections.OrderedDict.fromkeys().
Это самый быстрый метод для достижения конкретной задачи. Сначала он удаляет дубликаты и возвращает словарь, который необходимо преобразовать в список. Он также хорошо работает и в случае строк.
# Код Python3 показывает как удалять дубликаты из списка
# с помощью collections.OrderedDict.fromkeys()
from collections import OrderedDict
# инициализация списка
my_list = [1, 5, 3, 6, 3, 5, 6, 1]
print («Оригинальный список : » + str(my_list))
# используем модуль collections.OrderedDict.fromkeys()
# чтобы удалить дубликаты из списка
# вывод списка после удаления элементов
print («Список после удаления дубликатов: » + str(li))
Оригинальный список : [1, 5, 3, 6, 3, 5, 6, 1]
Список после удаления дубликатов: [1, 5, 3, 6]
Таким образом, для получения списка из уникальных элементов в Python, применимы все вышеуказанные методы. Но при этом встроенный модуль collections минимизирует скорость выполнения задачи.
Создано 21.09.2021 10:33:00
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.