[파이썬] 집합의 요소 교집합 연산 (intersection 메서드)

집합은 파이썬에서 다양한 요소를 저장하는 데 사용되는 유용한 데이터 구조입니다. 집합은 중복된 요소를 허용하지 않으며, 순서가 없습니다. 이러한 특징들은 집합을 사용하여 여러 종류의 데이터 처리 작업을 수행하는 데 적합합니다.

파이썬의 내장 집합 클래스인 set을 사용하여 집합을 생성하고 다양한 연산을 수행할 수 있습니다. 이 중에서도 집합의 요소 교집합을 계산하는 연산은 매우 유용합니다. 교집합 연산은 두 개 이상의 집합을 비교하여 공통된 요소를 찾아내는 작업을 수행합니다.

intersection 메서드의 사용법

파이썬의 집합 클래스는 intersection 메서드를 제공하여 교집합 연산을 수행할 수 있습니다. 이 메서드는 set.intersection() 형태로 사용되며, 교집합 결과를 새로운 집합으로 반환합니다.

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

intersection_set = set1.intersection(set2)

print(intersection_set)
Output:
{4, 5}

위의 예제에서는 두 개의 집합 set1set2를 생성하고, intersection 메서드를 사용하여 교집합을 계산합니다. 계산 결과인 {4, 5}intersection_set 변수에 저장되며, 이를 출력합니다.

다중 집합의 교집합 연산

intersection 메서드는 두 개 이상의 집합을 비교하여 교집합을 계산할 수 있습니다. 이 경우, intersection 메서드에 모든 집합을 인자로 전달하면 됩니다.

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
set3 = {3, 4, 5, 10}

intersection_set = set1.intersection(set2, set3)

print(intersection_set)
Output:
{4, 5}

위의 예제는 세 개의 집합을 비교하여 교집합을 계산합니다. 결과로 {4, 5}가 출력됩니다.

요소의 타입 제한

파이썬의 집합은 다양한 타입의 요소를 저장할 수 있습니다. 그러나 intersection 메서드를 사용할 때, 각 요소의 타입은 유사한 타입이어야 합니다. 예를 들어, 정수로 이루어진 집합과 문자열로 이루어진 집합의 교집합을 계산하려고 하면 TypeError가 발생합니다.

set1 = {1, 2, 3, 4, 5}
set2 = {'a', 'b', 'c', 'd', 'e'}

intersection_set = set1.intersection(set2)

print(intersection_set)
Output:
TypeError: unhashable type: 'set'

위의 예제에서는 정수로 이루어진 set1과 문자열로 이루어진 set2를 비교하여 교집합을 계산합니다. 이 경우 TypeError가 발생하는데, 이는 서로 다른 타입의 요소를 비교할 수 없기 때문입니다.

결론

집합은 파이썬에서 매우 유용한 데이터 구조입니다. 교집합 연산을 통해 여러 집합의 공통된 요소를 찾을 수 있으며, 파이썬의 set 클래스의 intersection 메서드를 사용하여 이를 수행할 수 있습니다. 유사한 요소 타입을 가진 집합들의 교집합을 계산할 때 효과적으로 사용할 수 있습니다.