[Python] Set

반응형
반응형

파이썬의 데이터 타입 중 set을 살펴볼까 합니다.

set은 수학 시간에 배운 집합을 모티브로 만든 데이터 타입이라서 수학의 집합과 성질이 비슷합니다.

순서가 없고 한 원소만 set에 들어갈 수 있습니다.

 

예를 들어, 중복 원소가 있는 리스트를 set으로 바꾸면 중복원소가 없어집니다.

s = set(['a','ab','c','cd','d','ab','cd'])
s

집합 모양도 수학시간에 본 집합모양으로 나오게 됩니다.

 

합집합, 교집합, 여집합, 대칭차도 가능합니다. 

대칭차는 (A U B) - (A ∩ B) 를 의미합니다. 즉, 집합 A와 B에서 교집합만 빠지는 경우를 말합니다.

 

s = set(['a','ab','c','cd','d','ab','cd'])
t = set(['a','b','c'])
s.union(t)     #합집합 s∪t

s.intersection(t)  #교집합 s∩t

 

s.difference(t) #차집합 s-t

 

t.difference(s) #차집합 t-s

 

s.symmetric_difference(t)  #대칭차

 

이걸 어디다 쓰나 생각할 수 있는데 주로 리스트에서 원소 필터링을 간단히 하거나 중복 원소를 지울 때 set을 사용하게 됩니다. 집합의 성질을 이용해 필터를 한 후 다시 리스트로 데이터 타입을 바꾸면 필터링한 리스트를 만들 수 있습니다.

 

집합을 리스트를 바꾸는 건 간단합니다. 다음과 같이 list() 안에 넣어주면 됩니다.

 

list_s = list(s)
list_s

 

'Python > 기초' 카테고리의 다른 글

[Python] array Class  (0) 2021.04.28
[Python] conda 기본 명령  (0) 2021.04.24
[Python]리스트, 딕셔너리 메모장에 저장,불러오기  (0) 2021.04.03
문자열 포맷 출력  (0) 2021.03.31
딕셔너리 key 변경하기  (0) 2021.03.27

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY