Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

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

파이썬 프로그래밍을 하다 보면 한 튜플(tuple)이 다른 튜플의 부분 집합(하위 집합)인지 확인해야 하는 경우가 종종 있습니다. 이럴 때 issubset() 메서드를 활용하면 아주 간단하게 해결할 수 있습니다.

issubset() 메서드는 호출한 집합(set)의 모든 요소가 인자로 전달된 다른 집합 안에 모두 포함되어 있으면 True를 반환하고, 하나라도 포함되어 있지 않으면 False를 반환합니다.

튜플은 집합 자료형이 아니기 때문에, 먼저 set() 함수로 튜플을 집합으로 변환한 뒤 issubset() 메서드를 호출해야 합니다. 아래 예제를 통해 살펴보겠습니다.

예제 코드

my_tuple_1 = (87, 90, 31, 85)
my_tuple_2 = (34, 56, 12, 5)

print("첫 번째 튜플:")
print(my_tuple_1)
print("두 번째 튜플:")
print(my_tuple_2)

my_result = set(my_tuple_2).issubset(my_tuple_1)

print("두 번째 튜플은 첫 번째 튜플의 부분 집합인가요?")
print(my_result)

실행 결과

첫 번째 튜플:
(87, 90, 31, 85)
두 번째 튜플:
(34, 56, 12, 5)
두 번째 튜플은 첫 번째 튜플의 부분 집합인가요?
False

코드 설명

  • 두 개의 튜플을 정의한 뒤, 콘솔에 출력합니다.
  • set() 함수로 두 번째 튜플을 집합으로 변환한 후 issubset() 메서드를 호출하고, 첫 번째 튜플을 인자로 전달하여 비교합니다.
  • 비교 결과는 변수 my_result에 저장됩니다.
  • 저장된 결과를 콘솔에 출력합니다.

위 예제에서 결과가 False로 나오는 이유는, 두 번째 튜플의 요소들(34, 56, 12, 5) 중 어느 것도 첫 번째 튜플(87, 90, 31, 85)에 포함되어 있지 않기 때문입니다.

다른 확인 방법

issubset() 메서드 외에도 부분 집합 여부를 확인할 수 있는 방법이 몇 가지 있습니다.

1. <= 연산자 사용

my_result = set(my_tuple_2) <= set(my_tuple_1)

2. all() 함수와 제너레이터 표현식 사용

my_result = all(elem in my_tuple_1 for elem in my_tuple_2)

세 가지 방법 모두 동일한 결과를 반환하지만, issubset() 메서드가 의도를 가장 명확하게 드러내므로 가독성 측면에서 권장됩니다.