Удаление дубликатов массива Python

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

Попробуйте в редакторе

Обзор

Удаление дубликатов — одна из наиболее распространенных операций по очистке данных в программном обеспечении.

Приведение списка к набору (`set(arr)`) удаляет дубликаты, но нарушает порядок элементов, поскольку наборы неупорядочены.

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

Код и вывод выполнения

Эффективный аккумулятор уникальных элементов O(n), сохраняющий порядок.

def remove_duplicates(arr):
    seen = set()
    result = []
    for item in arr:
        if item not in seen:
            seen.add(item)
            result.append(item)
    return result

sample_list = [1, 2, 2, 3, 4, 4, 1, 5]
print("Original:", sample_list)
print("Unique:  ", remove_duplicates(sample_list))
Терминальный выход
Original: [1, 2, 2, 3, 4, 4, 1, 5]
Unique:   [1, 2, 3, 4, 5]

Пошаговая реализация

  • Очистка истории поиска и журналов записей транзакций
  • Подготовка списка уникальных ключей данных для SQL-запросов
  • Очистка массивов для отображения визуализации

Часто задаваемые вопросы

Каков самый быстрый способ сделать это вPython 3.7+?

ПосколькуPython 3.7+ сохраняет порядок вставки словаря, вы можете запустить `list(dict.fromkeys(arr))`, чтобы удалить дубликаты, сохраняя порядок, за один оптимизированный шаг.

Связанные темы