Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
08 Авг 2023
2 мин
5635

Удаление дубликатов из списка в Python, сохраняя порядок

Пройдите тест, узнайте какой профессии подходите

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

Станьте веб-разработчиком с нуля за 15 месяцев на курсе онлайн-университета Skypro. Преподаватели — практикующие эксперты из VK, «Альфа-Банка», Skyeng и других крупных компаний. В программе нет лишней теории, зато много практических заданий, а результаты курсовых можно положить в портфолио. Специалисты центра карьеры помогут с резюме, сопроводительными письмами и собеседованиями.


В работе с Python часто возникают ситуации, когда необходимо удалять дубликаты из списка, сохраняя при этом их изначальный порядок. Рассмотрим простой пример, когда есть список чисел:

numbers = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]

Предположим, что требуется получить список уникальных чисел, но в том порядке, в котором они встречаются в исходном списке. Использование типового Python подхода с преобразованием списка в множество (set) не подойдет, так как множества не сохраняют порядок элементов.

Как же можно решить эту задачу на Python? Один из способов — использование так называемого словаря (dict), который появился в Python 3.7.

Словари в Python — это структура данных, которая хранит данные в виде пар «ключ-значение». Сохраняя элементы списка как ключи словаря, можно гарантировать, что все они будут уникальными, так как в словаре не может быть двух одинаковых ключей. Более того, начиная с версии Python 3.7, словари по умолчанию сохраняют порядок вставки элементов.

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

numbers = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
numbers_unique = list(dict.fromkeys(numbers))
print(numbers_unique)

В результате выполнения этого кода получится список [1, 2, 3, 5, 6], в котором сохранен порядок чисел из исходного списка.

Итак, удаление дубликатов из списка в Python, сохраняя порядок, можно выполнить с помощью словаря. Этот подход является вполне «Pythonic», то есть соответствует стилю и идеологии языка Python.

На курсе Skypro «Веб-разработчик» освоите JavaScript, GitHub, Tilda, Postman, HTML, CSS и другие программы и инструменты, научитесь решать реальные задачи разработчика и работать в команде. Все учебные проекты можно положить в портфолио и устроиться на работу по новой специальности еще в процессе обучения.

Добавить комментарий