1. 파이썬의 집합 (Set)
ㅇ 例) s = {1,2,3} 또는 s = set([1,2,3])
ㅇ 순서가 없으나, 중복을 허용 않는 값들의 모음(컬렉션)
ㅇ [참고] ☞ 자바스크립트의 Set 객체 참조
2. 특징
ㅇ Mutable 객체 (가변 객체) 임
- 단, 그 내부 원소는 mutable한 값은 가질수 없음
ㅇ 인덱싱, 슬라이싱 연산 불가능
- 순서있는 시퀸스 타입인 리스트,튜플,딕셔너리와는 달리,
- 특정 원소 참조를 위한, 인덱싱 [] 제공 안함
. (인덱싱 연산 이란? [0],[1],... 등 인덱스에 의해 개별 원소를 참조하는 것)
- 범위 원소 참조를 위한, 슬라이싱 [:] 제공 안함
. 슬라이싱 연산 : [ : ] (시작,끝을 정하여 범위 참조)
ㅇ 중복 허용 안함
ㅇ 해시 테이블을 사용하여 구현됨
- 따라서, 시간 복잡도 O(1) 로써, 개별 원소에 빠른 엑세스 가능
3. 연산, 메소드
ㅇ 멤버쉽 연산자 (in, not in) : 특정 원소 유무 확인
- 例) s = {1,2,3}; 2 in s => True, 5 in s => False, 5 not in s => True
ㅇ 크기 (Cardinality : 원소 개수) : len({'a','b','c'}) => 3
ㅇ 합산 (Summation) : sum({1,2,3}) => 6, sum({1,2,3},4) => 10
ㅇ 제공 메서드
- 리스트와 거의 유사하나,
. 원소 추가 : s = {1,2}; s.add(3) => {1,2,3}
. 원소 삭제 : s = {1,2,3}; s.remove(2) => {1,3}
. 원소 갱신 : s = {1,3}; s.update({3,5}) => {1,3,5}
- 이외에도, 교집합 intersect(),합집합 union(), 차집합 difference() 등이 추가됨
. 합집합 : {1,2,3} | {2,3,4} => {1,2,3,4}
. 교집합 : {1,2,3} & {2,3,4} => {2,3}