Практическое руководство

Set — одна из 4 встроенных структур данных в Python. Остальные — это словарь, список и кортеж.

Согласно официальной документации, набор — это неупорядоченная коллекция отдельных хешируемых объектов. Таким образом, двумя характерными чертами наборов являются:

  • Они не содержат повторяющихся элементов
  • Элементы должны быть хешируемыми (то есть неизменяемыми). Хотя наборы изменяемы, элементы в наборе неизменяемы.

В этой статье мы рассмотрим 4 обязательных метода сравнения наборов. Начнем с создания объекта набора.

myset = {1, 2, 3, 4, 5}
type(myset)
# Output
set

Методы, которые мы рассмотрим:

  • Перекресток
  • Разница
  • Союз
  • Симметричная разница

Разница и симметричная разница

Разностный метод находит элементы, которые существуют в одном наборе, но отсутствуют в других.

Как показано на рисунке выше, отличие множества A от множества B включает в себя все элементы, которые существуют в множестве A, но не существуют в множестве B.

Давайте сделаем несколько примеров, чтобы увидеть, как используются эти методы.

A = {1, 2, 3, 4, 5}
B = {3, 4, 5, 6, 7}

A.difference(B)
# Output
{1, 2}

B.difference(A)
# Output
{6, 7}

Набор A содержит 1 и 2, а набор B — нет. Таким образом, разница A возвращает 1 и 2.

Разностный метод можно использовать для более чем двух наборов. Например, «A.difference(B, C)» находит элементы, которые существуют в A, но не в B или C. Давайте посмотрим на это в действии:

A = {1, 2, 3, 4}
B = {3, 4, 10, 11}
C = {2, 4, 20, 21}
A.difference(B, C)
# Output
{1}

Метод симметричной разности находит элементы, которые существуют только в множестве A или только в множестве B. Таким образом, он возвращает объединение «разности A B» и «различия B A». Вот как используется этот метод:

A.symmetric_difference(B)
# Output
{1, 2, 6, 7}

Поскольку симметричная разность охватывает как «разность А-В», так и «разницу «В-А», мы можем поменять местами точки А и В:

Пересечение и союз

Пересечение двух множеств содержит элементы, которые существуют в обоих множествах. Объединение содержит элементы, которые существуют в любом из множеств.

A = {1, 2, 3, 4, 5}
B = {3, 4, 5, 6, 7}

A.intersection(B)
# Output
{3, 4, 5}

Примечание. «A.intersection(B)» — это то же самое, что и «B.intersection(A)».

Найдем также объединение A и B:

A.union(B)
# Output
{1, 2, 3, 4, 5, 6, 7}

Метод union принимает объединение наборов. Хотя 3, 4 и 5 существуют в обоих наборах, результирующий набор содержит только по одному для каждого. Дубликаты удаляются.

Методы объединения и пересечения можно использовать с более чем двумя наборами.

A = {1, 2, 3, 4}
B = {3, 4, 10, 11}
C = {2, 4, 20, 21}

A.union(B, C)
# Output
{1, 2, 3, 4, 10, 11, 20, 21}

A.intersection(B, C)
# Output
{4}

Мы рассмотрели 4 различных метода, которые используются для сравнения двух или более наборов. Если вы хотите узнать больше о наборах, вот более подробная статья, которую я написал ранее:



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



Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы.