Python: как удалить дубликаты из списка чисел

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

  1. Использование функции set(): преобразуйте список в набор, который автоматически удаляет дубликаты, а затем при необходимости преобразуйте его обратно в список. Однако обратите внимание, что этот метод не сохраняет исходный порядок элементов.

    numbers = [1, 2, 3, 2, 4, 1, 5, 6, 3, 4]
    unique_numbers = list(set(numbers))
  2. Использование понимания списка: создайте новый список, перебирая исходный список и добавляя только те элементы, которые не были добавлены ранее.

    numbers = [1, 2, 3, 2, 4, 1, 5, 6, 3, 4]
    unique_numbers = []
    [unique_numbers.append(num) for num in numbers if num not in unique_numbers]
  3. Использование метода dict.fromkeys(): создайте словарь из списка, который автоматически удаляет дубликаты, а затем извлекает ключи обратно в список.

    numbers = [1, 2, 3, 2, 4, 1, 5, 6, 3, 4]
    unique_numbers = list(dict.fromkeys(numbers))
  4. Использование функции itertools.groupby(): сгруппируйте элементы списка на основе их значений и выберите первый элемент из каждой группы.

    import itertools
    numbers = [1, 2, 3, 2, 4, 1, 5, 6, 3, 4]
    unique_numbers = [key for key, _ in itertools.groupby(sorted(numbers))]