-
set파이썬 Study/라이브러리 2021. 3. 15. 00:06
추천 :
■ Set
1) 정의
- set( ) 생성자를 이용하여 생성
- 중복 값이 없고, 값만 가지고 있다
- 순서가 없어 iteration 시 무슨 값이 나올지 모름
2) 예시 :
s = set([1,3,5,7]) print(s) >>> {1, 3, 5, 7} p = {1, 3, 5, 7} print(p) >>> {1, 3, 5, 7} s = {1, 5, 1, 1, 1, 3, 7} print(s) >>> {1, 3, 5, 7}
■ 기본 methods
1) in
- 원소의 존재 여부를 확인
2 in r >>> True 3 in r >>> False 3 not in r >>> True
2) add
- 원소의 추가
k = {100, 105} k.add(50) print(k) >>> {105, 50, 100} k.add(12) print(k) >>> {105, 50, 100, 12}
3) update
- 원소 추가를 여러개를 할 때 이용
> ALSO : dictionary, collections.Counter 가 공통으로 가지고 있는 method
k = {1, 2, 3} k.update([3, 4, 5]) print(k) >>> {1, 2, 3, 4, 5}
4) remove / discard
- remove(item) : item에 해당하는 원소를 제거하고, 없으면 KeyError 발생
k = {1, 2, 3} k.remove(3) print(k) >>> {1, 2} k.remove(3) >>> Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 3
- discard(item) : item에 해당하는 원소를 제거하고, 없어도 에러발생하지 않음
k = {1, 2, 3} k.discard(3) print(k) >>> {1, 2} k.discard(3) # key 에러 발생하지 않음 print(k) >>> {1, 2}
■ set 내부 원소 연산
1) 합집합
- OR 와 동일, | 기호 사용
a = {1, 2, 3, 4, 5} b = {3, 4, 5, 6, 7} c = a | b print(a) >>> {1, 2, 3, 4, 5} print(b) >>> {3, 4, 5, 6, 7} print(c) >>> {1, 2, 3, 4, 5, 6, 7}
2) 교집합
- AND 와 동일, & 기호 사용
a = {1, 2, 3, 4, 5} b = {3, 4, 5, 6, 7} c = a & b print(a) >>> {1, 2, 3, 4, 5} print(b) >>> {3, 4, 5, 6, 7} print(c) >>> {3, 4, 5}
3) 차집합
- 교집합 제외, - 기호 사용
a = {1, 2, 3, 4, 5} b = {3, 4, 5, 6, 7} c = a - b print(a) >>> {1, 2, 3, 4, 5} print(b) >>> {3, 4, 5, 6, 7} print(c) >>> {1, 2}
4) 대칭 차집합
- 합집합에서 교집합 제외, ^ 기호 사용
a = {1, 2, 3, 4, 5} b = {3, 4, 5, 6, 7} c = a ^ b print(a) >>> {1, 2, 3, 4, 5} print(b) >>> {3, 4, 5, 6, 7} print(c) >>> {1, 2, 6, 7} # 각 a b 순수 집합의 합집합만 남음
반응형'파이썬 Study > 라이브러리' 카테고리의 다른 글
itertools (0) 2021.03.17 map (0) 2021.03.17 filter (0) 2021.03.14 list comprehension / (+dict, tuple, set, ...) (1) 2021.03.14 Range / Enumerate / For in loop (1) 2021.03.14