⚙️Задачи по Python 🐍



Даны списки:



a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89];



b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13].



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



Вариант решения №1️⃣



Можем воспользоваться функцией filter:



result = list(filter(lambda elem: elem in b, a))




Вариант решения №2️⃣



Или списковым включением:



result = [elem for elem in a if elem in b]




Вариант решения №3️⃣



А можно привести оба списка к множествам и найти их пересечение:



result = list(set(a) & set(b))



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