공부/Python
set 집합
Chelsey
2022. 2. 10. 02:20
728x90
set을 통해 중복을 제거시키고 데이터를 추출하는 작업이 가능하다.
- {} 중괄호, 컴마로 구분.
- 중복을 허용하지 않는다.
- 자료의 순서가 유지되지 않는다. 순서가 랜덤으로 저장된다.
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