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

파이썬 집합(set)의 union() 함수 완벽 정리

이 글에서는 파이썬 set 자료형에 적용할 수 있는 연산 중 하나인 union() 함수에 대해 알아보겠습니다. 합집합(union)은 여러 입력 집합에 포함된 모든 원소를 모으되, 중복되는 원소는 제외한 가장 작은 집합을 의미합니다.

기본 문법

<set_1>.union(<set_2>, <set_3>, ...)

반환 타입set 타입입니다.

수학 기호 — 확률과 통계에서는 함수 이름의 첫 글자를 딴 'U' 기호로 표기하며, 이는 수학의 합집합 연산자와 동일한 개념입니다.

사용 예제

# Python 3.x set union() 함수 예제
set_1 = {'a', 'b'}
set_2 = {'b', 'c', 'd'}
set_3 = {'b', 'c', 'd', 'e', 'f', 'g'}

# 두 집합에 대한 합집합 연산
print("set_1 U set_2 : ", set_1.union(set_2))
print("set_3 U set_2 : ", set_2.union(set_3))
print("set_1 U set_3 : ", set_1.union(set_3))

# 세 집합에 대한 합집합 연산
print("set_1 U set_2 U set_3 :", set_1.union(set_2, set_3))

실행 결과

set_1 U set_2 : {'a', 'd', 'c', 'b'}
set_3 U set_2 : {'e', 'c', 'd', 'b', 'f', 'g'}
set_1 U set_3 : {'e', 'c', 'd', 'b', 'a', 'f', 'g'}
set_1 U set_2 U set_3 : {'e', 'c', 'd', 'b', 'a', 'f', 'g'}

실행 결과를 보면, 결과 집합을 만들 때 중복된 원소는 한 번만 포함되는 것을 확인할 수 있습니다. 예를 들어 set_1set_2에 공통으로 존재하는 'b'는 최종 결과에 단 한 번만 나타납니다.

| 연산자를 활용한 대체 문법

집합 연산은 .union() 메서드 외에도 파이프(|) 연산자를 사용해 구현할 수 있습니다. 두 방식은 기능적으로 완전히 동일합니다.

# Python 3.x | 연산자를 사용한 합집합
set_1 = {'a', 'b'}
set_2 = {'b', 'c', 'd'}
set_3 = {'b', 'c', 'd', 'e', 'f', 'g'}

# 두 집합에 대한 합집합 연산
print("set_1 U set_2 : ", set_1 | set_2)
print("set_3 U set_2 : ", set_2 | set_3)
print("set_1 U set_3 : ", set_1 | set_3)

# 세 집합에 대한 합집합 연산
print("set_1 U set_2 U set_3 :", set_1 | set_2 | set_3)

위 코드의 실행 결과는 앞선 .union() 메서드를 사용한 예제와 동일합니다. 다만 .union() 대신 | 기호를 사용했을 뿐이며, 그 기능은 같습니다.

리스트(list)에 합집합 적용하기

합집합 연산자는 리스트에 직접 적용할 수 없지만, 명시적 형 변환(type casting)을 통해 리스트를 set 타입으로 바꾼 후 사용할 수 있습니다.

list(set(lst_1) | set(lst_2))

이 방식은 두 리스트를 각각 집합으로 변환한 뒤 합집합을 구하고, 다시 리스트로 변환하는 과정을 거칩니다. 덕분에 두 리스트에 있는 모든 고유한 원소를 중복 없이 하나의 리스트로 얻을 수 있습니다.

마무리

이번 글에서는 파이썬의 union() 함수와 | 연산자를 활용한 합집합 연산 방법을 살펴보았습니다. 집합(set) 자료형뿐만 아니라, 형 변환을 통해 리스트 자료형에도 동일하게 적용할 수 있다는 점까지 함께 정리했습니다. 데이터에서 중복을 제거하고 고유한 값만 추출해야 할 때 유용하게 활용해 보시기 바랍니다.