728x90
반응형
set은 집합에 관련된 것을 쉽게 처리하기 위한 자료형이다.
a = set([1,2,3])
a # {1,2,3}
b = set('hello')
b # {'e','h','l','o'}
set의 특징은 2가지 특징이 있다.
- 중복을 허용하지 않는다.
- 순서가 무시된다. (인덱싱/슬라이싱이 안됨)
# 중복제거
a = [1,1,2,2,3,4]
b = set(a)
a # [1,1,2,2,3,4]
b # {1,2,3,4}
# 인덱싱이 안됨
a[0] # 1
b[0] # TypeError: 'set' object is not subscriptable
# 인덱싱 하게 만드는 법
# 리스트나 튜플로 만들어줘야한다.
c=list(b)
c[0] # 1
d=tuple(b)
d[0] # 1
교집합/차집합/합집합을 구하는 것은 다음과 같다.
s1 = set(['a','b','c','c','d'])
s2 = set(['a','a','e','e','g','f'])
s1 # {'a','b','c','d'}
s2 # {'a','e','g','f'}
# 합집합 ( |를 쓰면된다. 이것은 shift를 누른 상태에서 원화 표시를 누르면 된다.)
s1 | s2 # {'a','b','c','d','e','g','f'}
# 교집합
s1 & s2 # {'a'}
# 차집합
s1 - s2 # {'b','c','d'}
s2 - s1 # {'e','g','f'}
잘 쓰이진 않지만 수정 할 때는 다음과 같이 쓸 수 있다.
# 추가
a = set(['a','b','c'])
a.add(1)
a # {'a','b','c',1}
# 여러 개 추가
a.update([2,3,'h'])
a # {'a','b','c',1,2,3,'h'}
# 특정 값 제거
a.remove('a')
a # {'b','c','1,2,3,'h'}
728x90
반응형
'파이썬3 > 기초' 카테고리의 다른 글
변수 (variable)와 카피 (copy) (0) | 2021.12.30 |
---|---|
불 (bool) 자료형 (0) | 2021.12.30 |
딕셔너리 (dictionary) (0) | 2021.12.28 |
튜플 (tuple) (0) | 2021.12.28 |
리스트 (list) 수정하기 (0) | 2021.12.27 |