Симметрическая разность между списками в Python

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В Python симметрическая разность между двумя множествами - это множество элементов, которые находятся в одном из множеств, но не в их пересечении. В этом испытании вы напишете функцию, которая принимает на вход два списка и возвращает их симметрическую разность.

Симметрическая разность

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

Для решения этой проблемы вы можете следовать следующим шагам:

  1. Создайте множество из каждого списка.
  2. Используйте списочное выражение для каждого из них, чтобы оставить только значения, не содержащиеся в предварительно созданном множестве другого списка.
  3. Объедините два списка, полученных на шаге 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. Также вы узнали, как использовать множества и списочные выражения для решения этой проблемы.