Удаление дубликатов python list

Как удалить повторяющиеся элементы из списка в Python

В этом руководстве по Python мы увидим как удалить повторяющиеся элементы из списка Python с наглядными примерами различных методов.

Как мы все знаем, Списки Python индексируются, поэтому они имеют элементы с одинаковыми значениями. Например:

list_with_duplicates = ['sam', 'tom', 'rob', 'betty', 'sam', 'rob']

Как удалить повторяющиеся элементы из списка Python

Мы видим, что в приведенном выше списке 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, используя set

Примечание: Порядок списка меняется, потому что набор не упорядочен в 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, используя понимание списка

Как мы видим, все повторяющиеся элементы удалены, а порядок сохранен.

Таким образом, мы можем использовать понимание списка в 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']

Как удалить повторяющиеся элементы из списка Python с помощью dict.fromkeys()

Таким образом, мы можем использовать 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 с помощью Pandas

Таким образом, мы можем использовать Библиотека панд в Python для удаления дубликатов в списке.

Заключение:

В заключение мы узнали, что Python предлагает несколько мощных методов для удаления дубликатов из списка, таких как набор, dict.fromkeys(), понимание спискаи Библиотека панд. Каждый со своими плюсами и минусами. Мы должны видеть наши потребности и выбор мудро.

Вы можете прочитать следующие статьи:

Я Биджай Кумар, Microsoft MVP в SharePoint. Помимо SharePoint, последние 5 лет я начал работать над Python, машинным обучением и искусственным интеллектом. За это время я приобрел опыт работы с различными библиотеками Python, такими как Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn и т. д. для различных клиентов в США, Канаде, Великобритании, Австралии, Новая Зеландия и т. д. Проверьте мой профиль.

Источник

Способы удаления дубликатов из списка в Python

Способы удаления дубликатов из списка в 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.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.

    Источник

    Читайте также:  Static word in java
    Оцените статью