안녕하세요! 이번 글에서는 파이썬의 집합(SET)에 대해서 알아보려고 합니다.
안녕하세요 set은 sequence type이 아니고 unordered collection 인 data type입니다.
파이썬은 수학적인 집합 연산을 제공하고 있습니다.
오늘은 집합의 선언과 기능 그리고 특이점을 중심으로 글을 작성해 보겠습니다.
1) 집합 선언하기
집합은
name = {value1,value2}
이런식으로 생성합니다.
name = set() # 변수가 하나일 때 사용
name = {value1, value2,value3} # 변수가 여러 개 일 때 사용
>>> a = set() # 값이 하나일 때만 사용(iterable한 객체 분해 용도로 사용하는 듯)
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} # 값이 여러개 일 때 사용
>>> type(a)
<class 'set'>
>>> type(basket)
<class 'set'>
>>> # fast membership testing
>>> 'orange' in basket
True
>>> print('crabgrass' in basket)
False
2) 특이점
집합은 순서도 없고 중복도 없습니다.
실제로 출력을 해보면 매번 순서가 다르게 나타날 것입니다
iterable 한 객체 1개를 분해를 하고싶다면 set() 안에 집어넣는 것도 좋은 방법입니다.
>>> a = set('aaabbbcccdddeeefff')
>>> b = set('dddeeefffggghhhiii')
>>> a
{'f', 'b', 'c', 'e', 'a', 'd'}
>>> b
{'f', 'i', 'e', 'h', 'g', 'd'}
3) 집합 연산 지원
집합과 관련된 연산을 지원합니다.
union, intersection, difference, symmetric difference 등 다양한 연산을 지원합니다.
3-1) 합집합
>>> a|b
{'f', 'b', 'c', 'i', 'e', 'a', 'h', 'g', 'd'}
>>> a.union(b)
{'f', 'b', 'c', 'i', 'e', 'a', 'h', 'g', 'd'}
3-2) 교집합
>>> a&b
{'e', 'f', 'd'}
>>> a.intersection(b)
{'e', 'f', 'd'}
3-3) 차집합
>>> a-b
{'a', 'c', 'b'}
>>> a.difference(b)
{'a', 'c', 'b'}
3-4) 대칭 차집합
>>> a^b
{'a', 'b', 'h', 'c', 'i', 'g'}
>>> a.symmetric_difference(b)
{'a', 'b', 'h', 'c', 'i', 'g'}
4) set comprehension
>>> c = {x for x in 'aaabbbcccdddeeefff' if x not in 'abc'}
>>> c
{'e', 'f', 'd'}
리스트 컴프리헨션과 마찬가지로 집합 컴프리헨션도 지원합니다.
정리)
집합은 선언 방법이 2가지가 있다.1) name = set()2) name = {value1,value2,value3...}1번은 값이 하나일 때 사용해주고 2번은 값이 여러개일 때 사용해준다.
집합은 중복을 허용하지않는다.
집합은 순서가 없다.
집합은 순서가 없기 때문에 인덱싱, 슬라이싱이 불가하다.
또한 여러가지 집합 연산을 지원한다.
합집합 교집합 차집합 대칭차집합 등
a|b a&b a-b a^b
set comprehension을 지원한다.
괄호는 {} 대괄호로
마치면서)
파이썬 공식 문서에서 집합과 예제를 찾아보시면 더욱 자세한 정보를 얻을 수 있습니다.
다음 글에서도 유용한 파이썬 팁과 기능을 소개하도록 하겠습니다
감사합니다.
'파이썬 > 사용법' 카테고리의 다른 글
[Python] 딕셔너리 값 조회 방법 3가지 – [], get(), setdefault() 비교 정리 (1) | 2025.07.25 |
---|---|
[python] 파이썬 딕셔너리(Dictionary) 완전 정복 - 선언부터 반복문 활용 (1) | 2025.07.24 |
[python] 튜플(Tuple) 완전 정복: 선언부터 언패킹까지 핵심 개념 정리 (1) | 2025.07.23 |
[python] 리스트 메서드 핵심 정리: append부터 sort까지 한눈에 보기 (2) | 2025.07.23 |
[python] 리스트 생성 및 접근 (1) | 2025.07.22 |