Python - 집합 합치기

안녕하세요, 자신감 넘치는 Python 프로그래머 여러분! 오늘은 집합의 흥미로운 세계에 빠지고 집합을 합치는 방법을 배우려고 합니다. 여러분의 친절한 이웃 컴퓨터 과학 선생님으로서, 여러분을 이 여정을 안내하게 되어 기쁩니다. 그럼, 좋아하는 음료를 준비하고 편하게 앉아 이 Python 모험을 함께 시작해보세요!

Python - Join Sets

Python에서 집합이란?

집합을 합치기 전에 빨리 재미있는 집합에 대해 다시 한번 복습해보겠습니다. 집합은 마법의 가방처럼 고유한 항목들을 담을 수 있는 것이 있습니다. 같은 항목을 몇 번이나 넣어도 한 번만 나타나게 됩니다. 멋지지 않나요?

다음은 간단한 예시입니다:

fruit_basket = {"apple", "banana", "orange", "apple"}
print(fruit_basket)

출력:

{'orange', 'banana', 'apple'}

"apple"를 두 번 추가하려고 했는데도 한 번만 나타나는 것을 보았나요? 그것이 집합의 마법입니다!

Python에서 집합 합치기

이제 주요 내용으로 - 집합을 합치는 방법에 들어가봅시다. 두 개의 과일 상자가 있고, 그것들을 하나의 슈퍼 과일 상자로 결합하고 싶은 것과 같습니다. 그게 바로 집합을 합치는 것입니다!

"|" 연산자를 사용하여 Python 집합 합치기

"|" 연산자는 두 집합 간의 다리처럼 동작합니다. 두 집합 모두의 고유한 요소들을 포함한 새로운 집합을 만듭니다. 이제 실전으로 보겠습니다:

basket1 = {"apple", "banana", "orange"}
basket2 = {"grape", "kiwi", "banana"}

super_basket = basket1 | basket2
print(super_basket)

출력:

{'apple', 'banana', 'orange', 'grape', 'kiwi'}

"banana"가 super_basket에서 한 번만 나타나는 것을 보았나요? 집합은 고유한 항목들만 유지하기 때문입니다. 파티에서 중복되지 않도록 규칙을 세우는 것과 같아요!

union() 메서드를 사용하여 Python 집합 합치기

union() 메서드는 집합을 합치는 또 다른 방법입니다. 다른 그룹들의 고유한 구성원들이 모이는 재회를 조직하는 것과 같습니다. 이렇게 동작합니다:

basket1 = {"apple", "banana", "orange"}
basket2 = {"grape", "kiwi", "banana"}

super_basket = basket1.union(basket2)
print(super_basket)

출력:

{'apple', 'banana', 'orange', 'grape', 'kiwi'}

"|" 연산자를 사용한 결과와 같습니다. "이 집합들을 연합하자!"라는 더 공식적인 방법으로 말할 수 있습니다!

update() 메서드를 사용하여 Python 집합 합치기

이제, 한 집합에서 모든 고유한 항목을 다른 집합에 추가하여 원래의 집합을 수정하고 싶은 경우는 어떻게 되나요? update() 메서드가 매우 유용합니다. 이는 친구들을 자신의 파티에 초대하고 그들이 자신의 친구 그룹에 속해지는 것과 같습니다:

basket1 = {"apple", "banana", "orange"}
basket2 = {"grape", "kiwi", "banana"}

basket1.update(basket2)
print(basket1)

출력:

{'apple', 'banana', 'orange', 'grape', 'kiwi'}

basket1이 basket2의 모든 고유한 항목을 포함하게 되었음을 알았나요? basket1이 새로운 친구들을 수용하기 위해 더 커졌어요!

언패킹 연산자를 사용하여 Python 집합 합치기

언패킹 연산자(*)는 집합의 내용물을 언패킹하는 마술사처럼 동작합니다. set()과 함께 사용하면 모든 고유한 요소들로 구성된 새로운 집합을 만듭니다. 이 마술 트릭을 볼까요?

basket1 = {"apple", "banana", "orange"}
basket2 = {"grape", "kiwi", "banana"}
basket3 = {"mango", "pineapple", "kiwi"}

super_basket = set(*basket1, *basket2, *basket3)
print(super_basket)

출력:

{'apple', 'banana', 'orange', 'grape', 'kiwi', 'mango', 'pineapple'}

마술사가 각 상자에서 과일들을 꺼내어 하나 큰 상자에 넣고 중복이 없도록 만드는 것과 같아요!

집합 수식법을 사용하여 Python 집합 합치기

집합 수식법은 특정 조건에 따라 새로운 집합을 빠르게 만들어주는 지능卓绝한 로봇처럼 동작합니다. 여기서는 이를 사용하여 집합을 합치는 방법을 배워보겠습니다:

basket1 = {"apple", "banana", "orange"}
basket2 = {"grape", "kiwi", "banana"}

super_basket = {item for set_ in (basket1, basket2) for item in set_}
print(super_basket)

출력:

{'apple', 'banana', 'orange', 'grape', 'kiwi'}

로봇에게 "각 상자를 돌면서 과일 하나씩 꺼내고 슈퍼 상자에 넣어주오, 그러나 중복은 피해라!"라고 명령하는 것과 같습니다!

반복 추가를 사용하여 Python 집합 합치기

마지막으로, 우리는 반복적으로 요소를 추가하여 집합을 합칠 수 있습니다. 이는 각 상자에서 과일을 수동으로 꺼내어 새로운 상자에 추가하는 것과 같습니다:

basket1 = {"apple", "banana", "orange"}
basket2 = {"grape", "kiwi", "banana"}

super_basket = set()
for item in basket1:
super_basket.add(item)
for item in basket2:
super_basket.add(item)

print(super_basket)

출력:

{'apple', 'banana', 'orange', 'grape', 'kiwi'}

이 방법은 각 과일을 추가하기 전에 검토할 수 있는 더 많은 제어를 제공합니다.

집합 합치기 방법 요약

여기는 우리가 배운 모든 방법의 빠른 참조 표입니다:

방법 문법 설명
" " 연산자 set1 | set2
union() set1.union(set2) 두 집합의 요소들로 새로운 집합을 반환합니다
update() set1.update(set2) set2의 요소들을 set1에 추가합니다
언패킹 set(set1, set2) 언패킹된 요소들로 새로운 집합을 만듭니다
집합 수식법 {item for set in (set1, set2) for item in set} 수식법을 사용하여 새로운 집합을 만듭니다
반복 추가 for item in set2: set1.add(item) set2의 요소들을 하나씩 set1에 추가합니다

그리고 그렇게 끝! 여러분은 Python에서 집합을 합치는 여섯 가지 다른 방법을 배웠습니다. 프로그래밍은 요리하는 것과 마찬가지로 - 같은 결과를 얻을 수 있는 여러 가지 방법이 있습니다. 중요한 것은 각 방법을 이해하고 자신의 필요에 가장 적합한 것을 선택하는 것입니다.

계속 연습하고, 호기심을 유지하고, 즐거운 코딩하세요! 알고보면 여러분은 이미 프로 프로그래머처럼 비트와 바이트를 장난치는 것처럼 집합을 굴리고 있을 테니까요. 다음 번에 뵙겠습니다, 여러분의 친절한 이웃 컴퓨터 과학 선생님입니다, 안녕히 가세요!

Credits: Image by storyset