Практическое руководство
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. Если вы уже подписались, не забудьте подписаться, если хотите получать электронные письма всякий раз, когда я публикую новую статью.
Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы.