본문 바로가기

파이썬3/기초

집합 (set)

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