[python] 집합(Set) By starseat 2026-01-11 17:06:41 python Post Tags # 집합 - 수학의 집합 개념과 동일한 자료형이다. - 중복을 허용하지 않고 순서가 없는 데이터들의 모임 - 집합은 중복을 허용하지 않는 특징 때문에 **데이터의 중복을 제거하기 위한 필터로 종종 사용** - 집합 자료형은 순서가 없기(unordered) 때문에 인덱싱을 통해 요솟값을 얻을 수 없음 - 교집합, 합집합, 차집합 등의 집합 연산을 쉽게 처리 가능 ```python s1 = set([1, 2, 3]) # set 키워드를 사용 s2 = set("Hello") # set()의 괄호 안에 리스트, 문자열도 가능 s1 # {1, 2, 3} s2 # {'e', 'H', 'l', 'o'} s3 = {1, 2, 3} # 중괄호({})를 사용해서 집합 자료형 생성 가능 s3 # {1, 2, 3} s4 = {'a', 'b', 'c'} s4 # {'a', 'c', 'b'} ``` - 집합 자료형에 저장된 값을 인덱싱으로 접근하려면 다음과 같이 리스트나 튜플로 변환한 후에 사용 ```python s1 = set([1, 2, 3]) l1 = list(s1) l1 # [1, 2, 3] l1[0] # 1 t1 = tuple(s1) t1 # (1, 2, 3) t1[0] # 1 ``` # 집합 처리 - 집합 처리의 기본 데이터 ```python s1 = set([1, 2, 3, 4, 5, 6]) s2 = set([4, 5, 6, 7, 8, 9]) ``` ## 교집합 ```python # & 사용 s1 & s2 # {4, 5, 6} # intersection 함수 사용 s1.intersection(s2) # {4, 5, 6} ``` ## 합집합 ```python # | 사용 > 4, 5, 6처럼 중복해서 포함된 값은 1개씩만 표현 s1 | s2 # {1, 2, 3, 4, 5, 6, 7, 8, 9} # union 함수 사용 s1.union(s2) # {1, 2, 3, 4, 5, 6, 7, 8, 9} ``` ## 차집합 ```python # - 사용 s1 - s2 # {1, 2, 3} s2 - s1 # {8, 9, 7} # difference 함수 사용 s1.difference(s2) # {1, 2, 3} s2.difference(s1) # {8, 9, 7} ``` # 집합 자료형 관련 함수 ## 값 1개 추가하기 - add ```python s1 = set([1, 2, 3]) s1.add(4) s1 # {1, 2, 3, 4} ``` ## 값 여러 개 추가하기 - update ```python s1 = set([1, 2, 3]) s1.update([4, 5, 6]) s1 # {1, 2, 3, 4, 5, 6} ``` ## 특정 값 제거하기 - remove ```python s1 = set([1, 2, 3]) s1.remove(2) s1 # {1, 3} ``` ## 특정 값 제거하기 - discard ```python s1 = set([1, 2, 3]) s1.discard(2) s1 # {1, 3} s1.discard(4) # 없는 값이어도 오류가 발생하지 않음 s1 # {1, 3} ``` ## 모든 값 제거하기 - clear ```python s1 = set([1, 2, 3]) s1.clear() s1 # set() ``` Previous Post [python] 딕셔너리(Dictionary) Next Post -