Иногда может возникнуть необходимость сравнить два списка в Python и найти совпадающие элементы. Рассмотрим пример:
список_1 = [1, 2, 3, 4, 5] список_2 = [9, 8, 7, 6, 5]
Цель — создать функцию, которая принимает на вход два списка и возвращает список с элементами, которые присутствуют в обоих списках. В данном случае, таким элементом будет число 5.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Решение с использованием циклов
Простейшим решением будет использование двух вложенных циклов. Первый цикл будет проходить по элементам первого списка, а второй — по элементам второго списка. Если элементы совпадают, то они добавляются в итоговый список.
def returnMatches(a, b): matches = [] for i in a: if i in b: matches.append(i) return matches
Решение с использованием множеств
Еще одним эффективным способом решения этой задачи является использование множеств в Python. Множества — это неупорядоченные коллекции уникальных элементов. Они поддерживают операции, которые обычно применяются к математическим множествам, такие как объединение, пересечение и разность.
В Python множества можно создать с помощью функции set() или с помощью фигурных скобок {}.
def returnMatches(a, b): return list(set(a) & set(b))
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
В данном случае используется операция пересечения (&), которая возвращает элементы, присутствующие в обоих множествах. Затем результат преобразуется обратно в список с помощью функции list().
Оба подхода успешно решают задачу, однако использование множеств обеспечивает более высокую производительность на больших объемах данных.
Добавить комментарий