공부/Python

set 집합

Chelsey 2022. 2. 10. 02:20
728x90

set을 통해 중복을 제거시키고 데이터를 추출하는 작업이 가능하다.

  1. {} 중괄호, 컴마로 구분.
  2. 중복을 허용하지 않는다.
  3. 자료의 순서가 유지되지 않는다. 순서가 랜덤으로 저장된다.
c={}
# data가 없으면 dictionary type

c={1,2}
# data가 있으면 set type
a=set('hello')
a # {'e', 'h', 'l', 'o'}

add

a.add("well")
# well가 원소로 추가됨

remove

존재하지 않는 데이터에 error 발생

a.remove("Hi")

discard

존재하지 않는 데이터에 error 발생안함

a.discard('hello')

pop

random으로 아무거나 추출되고 제거된다, 지정안됨

a.pop()

clear

all remove

a.clear()

in 연산자 : 특정값 유무 check

'hi' in s2
# True

is 연산자를 이용한 메모리 주소 일치여부 확인

대입연산자를 이용한 할당은 메모리위치도 같다.

s={10,20,30}
s2=s

메모리 상의 주소, 위치 확인

s is s2

두 집합에 속해있는 요소가 동일한지 확인

a == b

원본을 두고 사본을 이용할 경우 메모리 위치도 완전히 분리시켜야 하므로, copy()를 이용하여 다른 위치에 저장시킨다.

copy() 

두 개의 완전히 분리된 집합 생성

사본으로 사용에 유용하다

b=a.copy()

합집합, 차집합, 교집합, 대칭차집합

합집합 union, or 연산자

a|b
set.union(a,b)

차집합 difference

a-b
set.difference(a,b)

교집합 intersection, and 연산자

a&b
set.intersection(a,b)

대칭차집합, XOR 연산자

겹치지않는 모든 요소

대칭차집합 = 합집합 - 교집합 (a|b - a&b)

a^b
728x90