본문 바로가기
Python/Python 초급

Python 파이썬 SET, set(), 세트 데이터 타입

by 베타코드 2022. 3. 14.
반응형

안녕하세요. 독학코딩입니다. 오늘은 파이썬에서 자주 사용하지는 않지만 알고 있다면 정말 유용하게 활용할 수 있는 세트, set()에 대해서 배워보겠습니다. set()는 한글로 집합이라고 하며, set()는 순서와 중복이 없는 컬렉션입니다. 기본적으로 중복 검사, 멤버십 검사 등에 많이 사용합니다. 기본적으로 합, 교, 차, 대칭 차집합을 지원합니다.

 


 

Pytho set()의 기본

set()는 중괄호나 set() 선언을 통해 만들 수 있습니다. 빈 집합을 만들려면 {}가 아니라 set()를 사용하여야 합니다.

unkown_A = {}
unkown_B = set()
unkown_C = {"one", "two", "three"}
unkown_D = {"one":1, "two":2, "three":3}

print("unkown_A type :", type(unkown_A))
print("unkown_B type :", type(unkown_B))
print("unkown_C type :", type(unkown_C))
print("unkown_D type :", type(unkown_D))

# unkown_A type : <class 'dict'>
# unkown_B type : <class 'set'>
# unkown_C type : <class 'set'>
# unkown_D type : <class 'dict'>

위 예제를 통해서 딕셔너리와 세트의 차이를 분명히 확인하시는게 좋습니다.

 

 

Pytho set()의 합집합

set_A = {"one", "two", "three"}
set_B = {"two", "three", "four", "five"}

print(set_A|set_B)

# {'five', 'four', 'two', 'one', 'three'}

set()의 합집합은 기호 |를 이용하시면 됩니다. 이 기호를 어디에 있는지 잘 모르실 수도 있는데 엔터키 위에 \를 쉬프트와 함께 누르시면 |를 사용할 수 있습니다.

 

 

Pytho set()의 교집합

set_A = {"one", "two", "three"}
set_B = {"two", "three", "four", "five"}

print(set_A&set_B)

# {'three', 'two'}

set()의 교집합은 &를 통해서 가능합니다.

 

 

Pytho set()의 차집합

set_A = {"one", "two", "three"}
set_B = {"two", "three", "four", "five"}

print(set_A-set_B)
print(set_B-set_A)

# {'one'}
# {'four', 'five'}

set의 차집합은 직관적으로 -를 통해서 사용 가능합니다. 다만 차집합의 성질에 대해서 명확히 이해하셔야 실수하지 않습니다. print(set_A - set_B)print(set_B - set_A)의 차이를 명확히 이해하시기 바랍니다.

 

 

Pytho set()의 대칭 차집합

set_A = {"one", "two", "three"}
set_B = {"two", "three", "four", "five"}

print(set_A^set_B)

# {'five', 'one', 'four'}

대칭 차집합은 말이 어렵긴 하지만 합집합에서 교집합을 뺀거라고 생각하시면 됩니다. 즉 중복되는 걸 제외한 모든 것들입니다. 아래도 한번 확인해보시면 좋습니다.

Union_set = set_A | set_B
Intersection_set = set_A & set_B

print(Union_set - Intersection_set)

# {'five', 'four', 'one'}
반응형

댓글