Python 에서 집합이 다른 집합의 부분 집합인지 확인하는 방법

PythonBeginner
지금 연습하기

소개

이 랩에서는 Python 에서 한 집합이 다른 집합의 부분 집합인지 어떻게 결정하는지 배우게 됩니다. 먼저 부분 집합의 개념을 이해하고, 두 집합 set1set2를 생성하여 그 관계를 탐구하는 것으로 시작합니다. issubset() 메서드를 사용하여 set1set2의 부분 집합인지 확인하는 Python 스크립트를 작성하고, set1의 모든 요소가 set2에 존재하는지 여부에 따라 True 또는 False 출력을 관찰합니다.

이 랩은 issubset() 메서드를 더 깊이 파고들어 이해를 굳히기 위해 다양한 시나리오를 탐구합니다. 집합의 요소를 수정하고 스크립트를 다시 실행하여 출력이 어떻게 변경되는지 관찰함으로써 부분 집합의 개념과 issubset() 메서드의 기능을 강화합니다.

부분 집합 이해

이 단계에서는 Python 에서 부분 집합에 대해 배우게 됩니다. 부분 집합은 다른 집합에 모든 요소가 포함된 집합입니다. 부분 집합을 이해하는 것은 데이터 유효성 검사, 필터링 및 관계 분석과 같은 다양한 프로그래밍 작업에 매우 중요합니다.

두 개의 집합을 생성하는 것으로 시작해 보겠습니다.

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

여기서 set1은 요소 1, 2, 3 을 포함하고, set2는 요소 1, 2, 3, 4, 5 를 포함합니다. 우리는 set1set2의 부분 집합인지 확인하려고 합니다.

이를 위해 VS Code 편집기를 사용하여 ~/project 디렉토리에 subset_check.py라는 Python 스크립트를 생성합니다. VS Code 를 열고 ~/project 디렉토리에 subset_check.py라는 새 파일을 생성합니다.

이제 다음 코드를 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의 부분 집합임을 나타냅니다.

이제 set1set2의 부분 집합이 아닌 다른 예를 고려해 보겠습니다.

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

이는 set1set2에 없는 요소 6 을 포함하기 때문입니다. 따라서 set1set2의 부분 집합이 아닙니다.

issubset() 메서드 사용

이전 단계에서는 부분 집합의 기본 개념을 배우고 issubset() 메서드를 사용한 간단한 예제를 살펴보았습니다. 이 단계에서는 다양한 시나리오를 통해 issubset() 메서드를 자세히 살펴보겠습니다.

issubset() 메서드는 집합과 함께 사용할 수 있는 내장 Python 메서드입니다. 집합의 모든 요소가 다른 집합에 존재하는 경우 (집합이 부분 집합인 경우) True를 반환하고, 그렇지 않으면 False를 반환합니다.

기술을 나타내는 두 개의 집합이 있는 시나리오를 고려해 보겠습니다.

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

여기서 skills1은 주니어 데이터 과학자의 기술을 나타내고, skills2는 시니어 데이터 과학자에게 필요한 기술을 나타냅니다. 주니어 데이터 과학자의 기술이 시니어 데이터 과학자에게 필요한 기술의 부분 집합인지 확인하려고 합니다.

VS Code 를 사용하여 ~/project 디렉토리에서 subset_check.py 파일을 엽니다. 파일의 내용을 다음과 같이 수정합니다.

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

이는 skills1skills2의 부분 집합임을 나타내며, 이는 주니어 데이터 과학자의 기술이 시니어 데이터 과학자에게 필요한 기술의 부분 집합임을 의미합니다.

skills1skills2의 부분 집합이 아닌 다른 시나리오를 고려해 보겠습니다.

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

이는 skills1skills2에 없는 "Cloud Computing"을 포함하기 때문입니다. 따라서 skills1skills2의 부분 집합이 아닙니다.

<= 연산자 확인

이전 단계에서는 issubset() 메서드를 사용하여 한 집합이 다른 집합의 부분 집합인지 확인하는 방법을 배웠습니다. 이 단계에서는 <= 연산자를 사용하여 부분 집합을 확인하는 다른 방법을 배우게 됩니다.

<= 연산자는 한 집합이 다른 집합의 부분 집합인지 확인하는 데 사용할 수 있습니다. 왼쪽 집합이 오른쪽 집합의 부분 집합이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

이전 단계의 기술 예제를 다시 살펴보겠습니다.

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

<= 연산자를 사용하여 skills1skills2의 부분 집합인지 확인하려고 합니다.

VS Code 를 사용하여 ~/project 디렉토리에서 subset_check.py 파일을 엽니다. 파일의 내용을 다음과 같이 수정합니다.

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의 부분 집합임을 나타냅니다.

skills1skills2의 부분 집합이 아닌 다른 시나리오를 고려해 보겠습니다.

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

이는 skills1skills2에 없는 "Cloud Computing"을 포함하기 때문입니다. 따라서 skills1skills2의 부분 집합이 아닙니다.

<= 연산자는 두 집합이 같을 경우에도 True를 반환한다는 점에 유의해야 합니다. 예를 들어:

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

is_subset = set1 <= set2

print(is_subset)

set1set2가 같기 때문에 출력은 True가 됩니다. set1set2진정한 부분 집합인지 (즉, set1set2의 부분 집합이지만 set2와 같지 않음) 확인하려면 < 연산자를 대신 사용할 수 있습니다.

요약

이 Lab 에서는 Python 에서 한 집합이 다른 집합의 부분 집합인지 확인하는 방법을 배웠습니다. 먼저, 모든 요소가 다른 집합 내에 포함되어 있으면 집합이 부분 집합으로 간주되는 부분 집합의 개념을 이해했습니다.

그런 다음 issubset() 메서드를 사용하여 한 집합이 다른 집합의 부분 집합인지 확인했습니다. Python 스크립트를 생성하고 실행함으로써, 첫 번째 집합의 모든 요소가 두 번째 집합에 존재할 때 issubset() 메서드가 True를 반환하고, 그렇지 않으면 False를 반환하는 것을 관찰했습니다.