Как проверить, является ли одно множество подмножеством другого в Python

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

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

Введение

В этом лабораторном занятии вы научитесь определять, является ли одно множество подмножеством другого множества на Python. Сначала вы познакомитесь с концепцией подмножеств и создадите два множества, set1 и set2, чтобы исследовать их взаимосвязь. Используя метод issubset(), вы напишете скрипт на Python для проверки, является ли set1 подмножеством set2, наблюдая за выводом True или False в зависимости от того, все ли элементы set1 присутствуют в set2.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/DataStructuresGroup -.-> python/sets("Sets") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/sets -.-> lab-559563{{"Как проверить, является ли одно множество подмножеством другого в Python"}} python/build_in_functions -.-> lab-559563{{"Как проверить, является ли одно множество подмножеством другого в Python"}} python/data_collections -.-> lab-559563{{"Как проверить, является ли одно множество подмножеством другого в Python"}} end

Понимание подмножеств

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

Начнем с создания двух множеств:

set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}

Здесь set1 содержит элементы 1, 2 и 3, в то время как set2 содержит элементы 1, 2, 3, 4 и 5. Мы хотим определить, является ли set1 подмножеством set2.

Для этого вы создадите скрипт на Python с именем subset_check.py в директории ~/project с помощью редактора VS Code. Откройте VS Code и создайте новый файл с именем subset_check.py в директории ~/project.

Теперь добавьте следующий код в subset_check.py:

set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}

is_subset = set1.issubset(set2)

print(is_subset)

Сохраните файл.

Далее, выполните скрипт с помощью команды python в терминале:

python subset_check.py

Вывод будет следующим:

True

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

Теперь рассмотрим другой пример, когда set1 не является подмножеством set2:

Измените файл subset_check.py следующим образом:

set1 = {1, 2, 6}
set2 = {1, 2, 3, 4, 5}

is_subset = set1.issubset(set2)

print(is_subset)

Сохраните файл и запустите его снова:

python subset_check.py

Вывод будет следующим:

False

Это происходит потому, что set1 содержит элемент 6, который отсутствует в set2. Поэтому set1 не является подмножеством set2.

Использование метода issubset()

На предыдущем этапе вы узнали основную концепцию подмножеств и увидели простой пример использования метода issubset(). На этом этапе мы рассмотрим метод issubset() более детально на различных сценариях.

Метод issubset() - это встроенный метод Python, который можно использовать с множествами. Он возвращает True, если все элементы одного множества присутствуют в другом множестве (то есть первое множество является подмножеством второго), и False в противном случае.

Рассмотрим сценарий, в котором у нас есть два множества, представляющих навыки:

skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

Здесь skills1 представляет навыки младшего data scientist, а skills2 - навыки, требуемые для старшего data scientist. Мы хотим проверить, являются ли навыки младшего data scientist подмножеством навыков, требуемых для старшего data scientist.

Откройте файл subset_check.py в директории ~/project с помощью VS Code. Измените содержимое файла следующим образом:

skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

is_subset = skills1.issubset(skills2)

print(is_subset)

Сохраните файл.

Теперь выполните скрипт с помощью команды python в терминале:

python subset_check.py

Вывод будет следующим:

True

Это показывает, что skills1 является подмножеством skills2, то есть навыки младшего data scientist являются подмножеством навыков, требуемых для старшего data scientist.

Рассмотрим другой сценарий, когда skills1 не является подмножеством skills2:

Измените файл subset_check.py следующим образом:

skills1 = {"Python", "Data Analysis", "Cloud Computing"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

is_subset = skills1.issubset(skills2)

print(is_subset)

Сохраните файл и запустите его снова:

python subset_check.py

Вывод будет следующим:

False

Это происходит потому, что skills1 содержит "Cloud Computing", которого нет в skills2. Поэтому skills1 не является подмножеством skills2.

Проверка с использованием оператора <=

На предыдущем этапе вы узнали, как использовать метод issubset() для проверки, является ли одно множество подмножеством другого. На этом этапе вы узнаете альтернативный способ проверки подмножеств с использованием оператора <=.

Оператор <= можно использовать для проверки, является ли одно множество подмножеством другого. Он возвращает True, если множество слева является подмножеством множества справа, и False в противном случае.

Вернемся к примеру с навыками из предыдущего этапа:

skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

Мы хотим проверить, является ли skills1 подмножеством skills2 с использованием оператора <=.

Откройте файл subset_check.py в директории ~/project с помощью VS Code. Измените содержимое файла следующим образом:

skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

is_subset = skills1 <= skills2

print(is_subset)

Сохраните файл.

Теперь выполните скрипт с помощью команды python в терминале:

python subset_check.py

Вывод будет следующим:

True

Это показывает, что skills1 действительно является подмножеством skills2.

Рассмотрим другой сценарий, когда skills1 не является подмножеством skills2:

Измените файл subset_check.py следующим образом:

skills1 = {"Python", "Data Analysis", "Cloud Computing"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

is_subset = skills1 <= skills2

print(is_subset)

Сохраните файл и запустите его снова:

python subset_check.py

Вывод будет следующим:

False

Это происходит потому, что skills1 содержит "Cloud Computing", которого нет в skills2. Поэтому skills1 не является подмножеством skills2.

Важно отметить, что оператор <= также возвращает True, если два множества равны. Например:

set1 = {1, 2, 3}
set2 = {1, 2, 3}

is_subset = set1 <= set2

print(is_subset)

Вывод будет True, потому что set1 и set2 равны. Если вы хотите проверить, является ли set1 правильным подмножеством set2 (то есть set1 является подмножеством set2, но не равно ему), вы можете использовать оператор < вместо этого.

Резюме

В этом практическом занятии (лабораторной работе) вы узнали, как проверить, является ли одно множество подмножеством другого в Python. Вы начали с понимания концепции подмножеств, где множество считается подмножеством, если все его элементы содержатся в другом множестве.

Затем вы использовали метод issubset() для определения, является ли одно множество подмножеством другого. Создав скрипты на Python и запустив их, вы увидели, как метод issubset() возвращает True, когда все элементы первого множества присутствуют во втором множестве, и False в противном случае.