Курс Python → Удаление дубликатов с сохранением порядка с помощью dict.fromkeys

Удаление дубликатов из списка — распространённая задача в программировании, особенно когда важно сохранить порядок элементов. В Python для решения этой задачи можно использовать несколько подходов, однако одним из наиболее элегантных и эффективных является использование метода dict.fromkeys(). Этот метод позволяет создать словарь, где ключами станут уникальные элементы исходного списка, а порядок их появления будет сохранён.

Для начала, рассмотрим, как работает этот метод. Когда вы вызываете dict.fromkeys(list1), Python проходит по всем элементам списка list1 и добавляет их в словарь в порядке появления. Поскольку словари в Python 3.7 и выше сохраняют порядок добавления элементов, вы можете быть уверены, что уникальные значения будут находиться на тех же позициях, что и в исходном списке. Затем, преобразовав этот словарь обратно в список, вы получите желаемый результат — список без дубликатов, но с сохранением порядка.

Вот пример кода, который демонстрирует этот подход:

list1 = [1, 2, 3, 2, 1, 4, 5, 3]
unique_list = list(dict.fromkeys(list1))
print(unique_list)  # Вывод: [1, 2, 3, 4, 5]

Как видно из примера, использование dict.fromkeys() позволяет удалить дубликаты всего за одну строку кода. Это делает код не только компактным, но и легко читаемым. Такой подход особенно полезен, когда вы работаете с большими списками, так как он работает быстро и эффективно, что может существенно сэкономить время при обработке данных.

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

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Работа с файлами в Python
  2. Форматирование строк в Python
  3. Работа с комплексными числами
  4. Списковое включение в Python
  5. Декоратор total_ordering для сравнения объектов
  6. Бесконечная проверка в Python
  7. Безопасные SQL-запросы в Python 3.11
  8. Группы исключений в Python
  9. Профилирование данных с Pandas
  10. Сравнение def и lambda функций в Python
  11. Изменение логики работы с временем
  12. Big O оптимизация
  13. Работа с контекст-менеджером «with»
  14. None в Python: использование и особенности
  15. Сортировка с помощью параметра key
  16. Участие в LP стейкинге Waves
  17. Python reversed() vs срез[::-1]
  18. Метод append() для списка
  19. PrettyTable: создание таблицы
  20. Настройка Cron
  21. Работа с прокси в Python
  22. Использование html-скриптов в Jupyter Notebook
  23. Переворот последовательности
  24. Проекты на Python
  25. Псевдонимы в Python
  26. Работа с defaultdictами в Python
  27. Метод splitlines() для разделения строк
  28. Метод __ixor__ для побитового исключающего ИЛИ
  29. Генерация UUID в Python
  30. Создание и удаление объектов
  31. Проверка запуска скрипта или импорта модуля
  32. Отправка HTTP-запросов в Python
  33. Работа с функцией next() в Python
  34. Управление сессиями в Python
  35. Форматирование строк с % в Python
  36. Конвертация изображений в PDF
  37. Функция с **kwargs в Python
  38. Установка Git и AWS CLI
  39. Сериализация объектов в Python
  40. Мониторинг работы программы Py-spy
  41. Преобразование многоуровневого словаря
  42. Поиск файлов по шаблону
  43. Повторение элементов списков
  44. Метод join() для объединения строк
  45. Создание Radio кнопок в tkinter
  46. Оператор объединения словарей

Marketello читают маркетологи из крутых компаний