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

Чтобы удалить повторяющиеся элементы из списка в Python, вы можете использовать несколько методов. Вот некоторые из наиболее распространенных подходов:

  1. Использование функции set(): вы можете преобразовать список в набор, который автоматически удаляет дубликаты, а затем при необходимости преобразовать его обратно в список. Однако обратите внимание, что этот метод не сохраняет исходный порядок элементов.
my_list = [2, 4, 6, 2, 8, 4, 10]
unique_list = list(set(my_list))
  1. Использование понимания списка: вы можете перебирать список и добавлять элементы в новый список, только если они не были добавлены ранее.
my_list = [2, 4, 6, 2, 8, 4, 10]
unique_list = []
[unique_list.append(x) for x in my_list if x not in unique_list]
  1. Используя метод dict.fromkeys(): вы можете создать словарь из списка, который автоматически удаляет дубликаты, а затем извлечь ключи, чтобы получить список уникальных элементов. Однако, как и в первом методе, этот подход не сохраняет исходный порядок.
my_list = [2, 4, 6, 2, 8, 4, 10]
unique_list = list(dict.fromkeys(my_list))
  1. Использование функции itertools.groupby(): для этого метода требуется сначала отсортировать список. Он группирует последовательные элементы, а затем выбирает первый элемент из каждой группы, в результате чего получается список без дубликатов.
import itertools
my_list = [2, 4, 6, 2, 8, 4, 10]
sorted_list = sorted(my_list)
unique_list = [next(group) for key, group in itertools.groupby(sorted_list)]
  1. Использование функции numpy.unique(): если у вас установлен NumPy, вы можете использовать функцию unique(), чтобы получить уникальные элементы из списка, сохраняя при этом исходный порядок.
import numpy as np
my_list = [2, 4, 6, 2, 8, 4, 10]
unique_list = np.unique(my_list).tolist()