프로그래밍/파이썬

[파이썬] Set 셋

znvlcm 2021. 6. 15. 15:37

 순서X | 중복X | 삽입O | 삭제O

 

1. 선언

a = set() => set()      type(a):<class 'set'>
b = set([1,2,3,4]) => {1, 2, 3, 4}      type(b):<class 'set'>
c = set([10,30,40,20,30]) => {40, 10, 20, 30}   type(c):<class 'set'> ## 순서, 중복(40)없음
d ={ 1,2,3,4,5,1,2,3,4,5} => {1, 2, 3, 4, 5}    type(d):<class 'set'>

2. 형변환

b : {1, 2, 3, 4}        type(b):<class 'set'>   ## 중괄호 set
t = tuple(b) => (1, 2, 3, 4)    type(t):<class 'tuple'>  ## 괄호 tuple
l = list(b) => [1, 2, 3, 4]     type(l):<class 'list'>   ## 대괄호 list

3. 추가 삭제

1) 추가

d.add(100) =>  {1, 2, 3, 4, 5, 100}
d.add(1) => {1, 2, 3, 4, 5, 100}        ## 중복값추가안됨

2) 삭제

d.remove(100) =>  {1, 2, 3, 4, 5}
d.remove(999) =>KeyError: 999   ## 존재하지 않는 값 삭제시 에러


4. set함수

s1 = set([20,30,40,80,70,60]) => {70, 40, 80, 20, 60, 30}
s2 = {20,30,100,1000,1000} => {1000, 100, 20, 30}

1) 교집합

s1.intersection(s2) =>  {20, 30}
s1 & s2 =>  {20, 30}

2) 합집합

s1.union(s2) =>  {100, 70, 40, 1000, 80, 20, 60, 30}
s1 | s2 =>  {100, 70, 40, 1000, 80, 20, 60, 30}

3) 차집합

s1.difference(s2) =>  {40, 80, 60, 70}
s1 - s2 =>  {40, 80, 60, 70}


5.연산 불가

s1+s2 => TypeError: unsupported operand type(s) for +: 'set' and 'set'
s1 *3 => TypeError: unsupported operand type(s) for *: 'set' and 'int'


6.인덱싱 불가

s1[0] => TypeError: 'set' object is not subscriptable


7.슬라이싱 불가

s1[0:2] => TypeError: 'set' object is not subscriptable

 

728x90

'프로그래밍 > 파이썬' 카테고리의 다른 글

[파이썬] 함수  (0) 2021.06.16
[파이썬] 딕셔너리 (Dict)  (0) 2021.06.15
[파이썬] 튜플 (Tuple)  (0) 2021.06.15
[파이썬] 리스트 List  (0) 2021.06.15
[파이썬] 가상환경 설정 및 패키지 설치  (0) 2021.06.14