본문 바로가기
파이썬/파이썬기본문법

파이썬 집합 - 집합 연결(Join Set)

by flycoding 2023. 10. 28.
반응형

파이썬 두개의 집합 연결

파이썬에서 두 개 이상의 세트를 결합하는 몇 가지 방법이 있다.

두 집합의 모든 항목을 포함하는 새 집합으로 반환하는 union() 메서드 또는 한 세트의 모든 항목을 다른 세트에 삽입하는 update() 메서드를 사용할 수 있다:

 

union() 메서드는 두 집합의 모든 항목이 포함된 새 집합을 반환한다:

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
print("set1 : ", set1)
print("set2 : ", set2)

set3 = set1.union(set2)
print("set3 = set1.union(set2)")

print("set3 : ", set3)

위의 코드를 실행하면 아래 그림과 같이 set1과 set2 집합이 연결이 되어 set3에 저장이 되며, 위의 코드를 실행하면 아래 그림과 같다.

파이썬 집합 연결 + join set 활용 예제

 

update() 메서드는 set2의 항목을 set1에 삽입한다:

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
print("set1 : ", set1)
print("set2 : ", set2)

set1.update(set2)
print("set1.update(set2)")

print("set1 : ", set1)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 집합 update() 메소드 활용 예제

 

파이썬 연결 - 중복 항목  - intersection_update()

interestion_update() 메서드는 두 집합에 모두 있는 항목만 유지한다.

set x와 set y에 모두 존재하는 항목을 유지한다:

x = {"사과", "바나나", "체리"}
y = {"구글", "마이크로소프트", "사과"}
print("x : ", x)
print("y : ", y)


x.intersection_update(y)
print("x.intersection_update(y)")

print(x)
print("x : ", x)

집합 x와 집합 y의 교집합을 구하기 위해 x.intersection_update(y) 메소드를 통해 구할 수 있으며, 위의 코드를 실행하면 아래 그림과 같다.

파이썬 집합 - 교집합 intersection_update() 활용 예제

interestion() 메서드는 두 집합에 모두 있는 항목만 포함하는 새 집합을 반환합니다.

x = {"사과", "바나나", "체리"}
y = {"구글", "마이크로소프트", "사과"}
print("x : ", x)
print("y : ", y)


z = x.intersection(y)
print("z = x.intersection(y)")

print("z : ", z)

intersetion() 메소드는 새로운 변수 z에 할당하여 두 집합에 공통으로 있는 항목을 추출하여 새로운 집합 변수에 할당한다.

위의 코드를 실행하면 아래 그림과 같다.

파이썬 집합 - 교집합 intersection() 활용 예제

 

파이썬 집합 - 중복되지 않는 항목 - symmetric_difference_udpate()

symmetric_difference_update() 메서드는 두 집합에 없는 요소만 유지한다.

x = {"사과", "바나나", "체리"}
y = {"구글", "마이크로소프트", "사과"}
print("x : ", x)
print("y : ", y)


x.symmetric_difference_update(y)

print("x.symmetric_difference_update(y)")

print("x : ", x)

x.symmetric_difference_update(y) 메소드를 실행하면 집합 x와 집합 y에서 중복되지 않는 항목만 남겨 집합 변수 x에 할당하며 '구글, 마이크로소프트, 바나나, 체리' 항목이 추출이 되며, 위의 코드를 실행하면 아래 그림과 같다.

파이썬 집합 - symmetric_difference_update() 활용 예제

 

symmetric_difference() 메서드는 두 집합에 없는 요소만 포함하는 새 집합을 반환합니다.

x = {"사과", "바나나", "체리"}
y = {"구글", "마이크로소프트", "사과"}
print("x : ", x)
print("y : ", y)


z = x.symmetric_difference(y)

print("z = x.symmetric_difference(y)")

print("z : ", z)

x.symmetric_difference(y) 메소드를 실행하면 집합 x와 집합 y에서 중복되지 않는 항목만 남겨 집합 변수 z에 할당하며 '구글, 마이크로소프트, 바나나, 체리' 항목이 추출이 되어 새로운 변수 z에 저장이 된다. 

위의 코드를 실행하면 아래 그림과 같다.

파이썬 집합 - symmetric_difference() 활용 예제

 

참고: True 값과 1 값은 집합 내에서 동일한 값으로 간주되며 중복으로 처리된다:

x = {"사과", "바나나", "체리", True}
y = {1, "구글", "마이크로소프트", "사과"}
print("x : ", x)
print("y : ", y)


z = x.symmetric_difference(y)

print("z = x.symmetric_difference(y)")

print("z : ", z)

집합 x의 True항목과 집합 y항목의 1은 같은 값이기에 symmetric_difference() 메소드에서 같은 값이기에 추출이 되지 않음을 기억해두자, 위의 코드를 실행하면 아래 그림과 같다.

파이썬 집합 - symmetric_difference() 활용 예제

 

지금까지 파이썬 두 집합을 연결하는 다양한 방법에 대해서 살펴보았다.

두 집합을 연결하기 위해 union()과 update() 메소드의 개념과 실습을 하였고,

두 집합에 모두 있는 항목만 추출하는 intersectino_update()와 intersection() 메소드를 살펴보았으며

두 집합에 모두 있지 않는 항목만 추출하는 symmetric_difference_update()와 symmetric_difference() 메소드의 개념과 실습을 하였다.

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

'파이썬 > 파이썬기본문법' 카테고리의 다른 글

파이썬 사전 - Python dictionaries  (1) 2023.10.30
파이썬 집합 메소드  (1) 2023.10.29
파이썬 집합 - 루프  (0) 2023.10.27
파이썬 집합 항목 삭제  (1) 2023.10.26
파이썬 집합 항목 추가  (0) 2023.10.25

댓글