Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
2 мин
1956

Нахождение дубликатов в списке и создание из них нового списка в Python

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

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

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

Задача стоит в том, чтобы найти все дубликаты в этом списке и создать из них новый список.

В Python решение этой задачи может быть выполнено с помощью нескольких подходов.

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

Использование встроенных функций и методов

Один из самых простых способов решения этой задачи — использование встроенных функций и методов Python. Для этого можно использовать следующий алгоритм:

  1. Инициализировать новый список для хранения дубликатов.
  2. Использовать функцию count() для подсчета количества каждого элемента в списке.
  3. Если элемент встречается более одного раза, добавить его в список дубликатов.

Пример кода, который реализует этот алгоритм:

list_a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
duplicates = [item for item in list_a if list_a.count(item) > 1]

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

На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.

Использование множеств и словарей

Другой подход к решению этой задачи — использование множеств и словарей Python. Этот подход более эффективен, особенно для больших списков.

Алгоритм решения задачи следующий:

  1. Использовать словарь для подсчета количества каждого элемента в списке.
  2. Использовать множество для хранения уникальных элементов списка.
  3. Если элемент уже присутствует в множестве, добавить его в список дубликатов.

Пример кода, который реализует этот алгоритм:

list_a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
duplicates = list(set([x for x in list_a if list_a.count(x) > 1]))

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

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

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