이 글에서는 파이썬의 issuperset() 메서드가 무엇인지, 그리고 다양한 상황에서 어떻게 활용되는지 알아보겠습니다.
issuperset()이란?
issuperset()은 파이썬 집합(set) 자료형에서 제공하는 내장 메서드로, 한 집합이 다른 집합을 완전히 포함하는지, 즉 상위집합(superset)인지를 판별합니다.
동작 방식은 다음과 같습니다.
- 인자로 전달한 집합 A의 모든 요소가 집합 B에 포함되어 있다면 →
True반환 - A의 요소 중 하나라도 B에 없다면 →
False반환
쉽게 말해, B가 A의 상위집합이라면 True를, 그렇지 않다면 False를 반환하는 것입니다.
기본 예제
먼저 간단한 예제를 통해 동작을 살펴보겠습니다.
A = {'t','u','t','o','r','i','a','l'}
B = {'t','u','t'}
print("A issuperset B : ", A.issuperset(B))
print("B issuperset A : ", B.issuperset(A))실행 결과:
A issuperset B : True B issuperset A : False
집합 A에는 't', 'u', 'o', 'r', 'i', 'a', 'l'이 모두 들어 있으므로 B의 모든 요소('t', 'u')를 포함합니다. 따라서 A.issuperset(B)는 True입니다. 반면 B는 A의 일부 요소만 가지고 있으므로 B.issuperset(A)는 False가 됩니다.
여러 집합 비교하기
이번에는 세 개의 집합을 서로 비교해 보겠습니다.
A = {'t','u','t','o','r','i','a','l'}
B = {'t','u','t'}
C = {'o','r','i','a','l'}
print("A issuperset B : ", A.issuperset(B))
print("B issuperset A : ", B.issuperset(A))
print("A issuperset C : ", A.issuperset(C))
print("B issuperset C : ", B.issuperset(C))실행 결과:
A issuperset B : True B issuperset A : False A issuperset C : True B issuperset C : False
결과를 해석하면 다음과 같습니다.
- A ⊃ B: A가 B의 모든 요소를 포함 → True
- B ⊃ A: B에 A의 요소가 일부 누락 → False
- A ⊃ C: A가 C의 모든 요소를 포함 → True
- B ⊃ C: B에 C의 요소가 없음 → False
참고: >= 연산자로도 확인 가능
issuperset() 메서드 대신 비교 연산자 >=를 사용해도 동일한 결과를 얻을 수 있습니다.
A = {1, 2, 3, 4}
B = {1, 2}
print(A >= B) # True
print(A.issuperset(B)) # True두 방식은 기능적으로 같지만, 코드의 의도를 명확히 드러내고 싶다면 issuperset() 메서드를 사용하는 것이 가독성 면에서 유리합니다.
마무리
이번 글에서는 파이썬 3.x에서 issuperset() 함수를 활용해 두 집합 간의 포함 관계를 확인하는 방법을 배웠습니다. 집합 데이터를 다룰 때 특정 집합이 다른 집합을 완전히 포함하는지 검사해야 한다면 issuperset() 또는 >= 연산자를 활용해 보시기 바랍니다.