Python

[Python] Set(집합)

SangRok Jung 2022. 8. 24. 17:52
반응형

Set


순서가 없으며 요소 마다 고유한 값을 가진다.

mutable한 값은 요소가 될 수 없다.

 

 

 

▶ set 선언

s = set()
s1 = {1}
s2 = {}
print(type(s), type(s1), type(s2))

# <class 'set'> <class 'set'> <class 'dict'>

 

 

 

 

▶ 문자형에서 집합으로 형 변환

s = "abcdef"
s = set(s)
sc = s
print(sc, type(s))

# {'a', 'e', 'd', 'c', 'f', 'b'} <class 'set'>

 

 

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

x = {1, 2, 3, 4, 5}
y = {3, 4, 5, 6, 7}

print(x&y) # 교집합 {3, 4, 5}

print(x|y) # 합집합 {1, 2, 3, 4, 5, 6, 7}

print(x-y) # 차집합 {1, 2}

print(y-x) # {6, 7}

print(x^y) # 대칭차집합 {1, 2, 6, 7}

 

 

 

 

▶ 메서드

메서드 설명
x in set 원소 x가 set의 원소인가?
x not in set 원소 x가 set의 원소가 아닌가?
set.add(x) 원소 x를 set에 추가
set.remove(x) 원소 x를 set에서 제거. 없다면 keyError 발생
set.discard(x) 원소 x가 있다면 set에서 제거
set.pop() set에서 임의의 원소를 하나 반환하고 set에서 제거. 공집합이면 keyError발생.
set.clear() set의 모든 요소 삭제
set.update() 여러데이터를 한번에 추가가 가능하다. 중복되는 데이터는 제외.
set.issubest(set2) 부분 집합 여부 확인 set2가 set에 포함되어 있다면 Flase.
set.issuperset(set2) issubest와 반대, set2가 set에 포함되어 있다면 True.
set.isdisjoint(set2) 교집합이 없으면 true, 있으면 false.
set.union(set2) 합집합
set.intersection(set2) 교집합
set.difference(set2) 차집합
set.symmetric_difference(set2) 대칭차집합 (합집합 - 교집합)

 

 

 

 

 

▶ 데이터 추가

x = {1, 2, 3, 4, 5}
x.add(10)
print(x)

# {1, 2, 3, 4, 5, 10}

 

 

 

 

▶ 다수의 데이터 추가

x = {1, 2, 3, 4, 5}
x.update([11, 12, 13])
print(x)

# {1, 2, 3, 4, 5, 11, 12, 13}

 

 

 

 

▶ 데이터 삭제

x = {1, 2, 3, 4, 5, 10, 11, 12, 13}
x.remove(13)
print(x)

# {1, 2, 3, 4, 5, 10, 11, 12}
반응형

'Python' 카테고리의 다른 글

[Python] 문자열 형식화, 문자열 함수  (0) 2022.08.24
[Python] Tuple(튜플)  (0) 2022.08.24
[Python] Dictionary(사전)  (0) 2022.08.24
[python] 연산자  (0) 2022.08.24
[python] 논리 연산자  (0) 2022.08.24