본문 바로가기

진리는어디에/Python

[Python] 시퀀스 자료형 #3 셑(set)

이번 강좌에서는 파이썬에서 수학적 집합 연산을 제공하는 시퀀스인 set에 대해 알아 보도록 하겠다.

목차

  1. 리스트(list)
  2. 튜플(tuple)
  3. >> 셑(set)
  4. 딕셔너리(dict)

https://www.thegeekstuff.com/2019/04/python-set-examples/

셑(set) 이란?

  • 파이썬에서 "수학적 집합 연산(교집합, 합집합, 차집합)을 제공하는 시퀀스다.
  • 요소의 중복을 허용하지 않고 순서를 유지하지 않는다
  • 배열 연산자를 통해 요소에 접근 할 수 없다
s3 = set('hello') # set은 중복을 허용하지 않고 순서를 유지하지 않는다 print(s3) # {'e', 'o', 'h', 'l'} print(s3[0]) # 배열 연산자를 통해 요소 접근 불가

셑(set)의 생성

1. 타입 이름 'set' 사용

# set 데이터 타입 이름으로 생성 s1 = set([1, 2, 3]) print(s1) # {1, 2, 3}

2. 중괄호 '{}' 사용

# 중괄호 {}를 이용해 생성 s2 = {1, 2, 3} print(s2) # {1, 2, 3}

3. 셑(set) 표현식 사용

s1 = { i for i in range(10) if i % 2 == 0 } print(s1) # {0, 2, 4, 6, 8}

셑(set)의 연산

s = {1, 2, 3} # set의 요소 개수 조사 len(s) # 3 # 단일 요소 추가 s.add(4) # {1, 2, 3, 4} # 다중 요소 추가. 여러개를 한번에 추가할 때는 update 사용. # 단, 중복을 허용하지 않기 때문에 set에 이미 있는 3, 4는 누락 된다. s.update({3, 4, 5, 6}) # {1, 2, 3, 4, 5, 6} # 요소 제거 s.remove(5) # {1, 2, 3, 4, 6}

셑(set)의 집합 연산

https://www.learnbyexample.org/python-set/

s1 = {1, 2, 3, 4, 5} s2 = {4, 5, 6, 7, 8, 9} # 교집합 print(s1.intersection(s2)) # {4, 5} print(s1 & s2) # {4, 5} # 합집합 print(s1.union(s2)) # {1, 2, 3, 4, 5, 6, 7, 8, 9} print(s1 | s2) # {1, 2, 3, 4, 5, 6, 7, 8, 9} # 차집합 print(s1.difference(s2)) # {1, 2, 3} print(s1 - s2) # {1, 2, 3} # 대칭 차집합 print(s1.symmetric_difference(s2)) # {1, 2, 3, 6, 7, 8, 9} print(s1 ^ s2) # {1, 2, 3, 6, 7, 8, 9}

마치며

이상 간단하게 set의 연산에 대해 알아 보았다. set에 대한 내용은 앞으로 예제들을 다루며 그 때, 그 때 추가 설명을 하도록하고 이정도로 정리하고 넘어가도록 한다. 다음은 파이썬 시퀀스의 마지막인 강좌인 [Python] 파이썬 기초부터 시작하기 - dictionary에 대해 살펴 보겠다.

부록 1. 같이 보면 좋은 글

유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!