Tiny Bunny

Rookies/인프라 활용을 위한 파이썬

[SK shieldus Rookies 19기] 파이썬 자료형 - 06

bento 2024. 2. 29. 16:12
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정

01. 집합(set)

>>> s1 = set([1, 2, 3])     #set을 사용하여 집합 자료형 생성
>>> s1
{1, 2, 3}

>>>s = set()      #비어 있는 집합 자료형 생성
  • 특징
중복이 없음
순서가 없음
>>> s2 = set("Hello")
>>> s2
{'e', 'H', 'l', 'o'}

인덱싱이 불가능 (=딕셔너리) 인덱싱을 사용하려면 리스트나 튜플로 변환 필요

= key와 value가 동일한 딕셔너리

 

 

  • 집합 연산(교집합/합집합/차집합) 할 때 유용하게 사용

 

EX

>>> s1 = set([1, 2, 3, 4, 5, 6])
>>> s2 = set([4, 5, 6, 7, 8, 9])

교집합 

>>> s1 & s2     # &을 사용
{4, 5, 6}

>>> s1.intersection(s2)     # intersection 함수를 사용
{4, 5, 6}
>>> s2.intersection(s1)
{4, 5, 6}

 

합집합

>>> s1 | s2     # |를 사용
{1, 2, 3, 4, 5, 6, 7, 8, 9}

>>> s1.union(s2)     # union 함수를 사용
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s2.union(s1)
{1, 2, 3, 4, 5, 6, 7, 8, 9}

 

차집합

>>> s1 - s2     # -를 사용
{1, 2, 3}

>>> s2 - s1
{8, 9, 7}

 

  • 관련 함수

값 1개 추가

>>> s1 = set([1, 2, 3])
>>> s1.add(4)            # add 사용
>>> s1
{1, 2, 3, 4}

 

값 여러개 추가

>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])     # update 사용
>>> s1
{1, 2, 3, 4, 5, 6}

 

특정 값 제거

>>> s1 = set([1, 2, 3])
>>> s1.remove(2)          # remove 사용
>>> s1
{1, 3}

 

 

728x90