반응형
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 |