Введение
В Python симметрическая разность между двумя множествами - это множество элементов, которые находятся в одном из множеств, но не в их пересечении. В этом испытании вы напишете функцию, которая принимает на вход два списка и возвращает их симметрическую разность.
Симметрическая разность
Напишите функцию symmetric_difference(a, b), которая принимает два списка в качестве аргументов и возвращает их симметрическую разность в виде списка. Функция не должна фильтровать дубликаты значений.
Для решения этой проблемы вы можете следовать следующим шагам:
- Создайте множество из каждого списка.
- Используйте списочное выражение для каждого из них, чтобы оставить только значения, не содержащиеся в предварительно созданном множестве другого списка.
- Объедините два списка, полученных на шаге 2.
def symmetric_difference(a, b):
(_a, _b) = (set(a), set(b))
return [item for item in a if item not in _b] + [item for item in b
if item not in _a]
symmetric_difference([1, 2, 3], [1, 2, 4]) ## [3, 4]
Резюме
В этом испытании вы узнали, как найти симметрическую разность между двумя списками в Python. Также вы узнали, как использовать множества и списочные выражения для решения этой проблемы.