집합(Set)
데이타(또는 객체)들의 순서 없는 모음을 담는데 사용.
정렬되지 않는 고유한 원소의 모임이다.
인덱스를 사용하지 않으며, 원소의 중복이 없다는 것이다
Sets 모듈은 import 해야 사용 가능하고, set() 내장함수에일련의 데이타(또는 객체)를 넘겨주어 생성
Set 샘플코드
>>> x1 = set([3, 5, 9, 10])
>>> print(x1)
set([9, 10, 3, 5])
>>> x2 = set("Hello")
>>> print(x2)
set(['H', 'e', 'l', 'o'])
집합의 종류
- 집합(set) : 변경 가능한 개체의 모음
- 동결집합(frozenset) : 변경 불가능한 개체의 모음
- 불변 개체는 한번 만들어지면 변경이 되지 않는 반면, 가변 개체는 생성 후에 변경이 가능함
집합의 기본 예제 코드
>>> # 집합을 사용하기 위해서는 우선 모듈을 들여와야한다.
>>> from sets import Set
>>> # 다음의 구문을 써서 집합을 생성한다
>>> my_set = Set([1,2,3,4,5])
>>> my_set
Set([5, 3, 2, 1, 4])
>>> # 집합에 값을 추가. 자세한 내용은 표 2-7을 참조
>>> my_set.add(6)
>>> my_set
Set([6, 5, 3, 2, 1, 4])
>>> # 중복되는 원소의 추가를 시도
>>> my_set.add(4)
>>> my_set
Set([6, 5, 3, 2, 1, 4])
집합 메서드와 함수
메소드 또는 연산 | 설명 |
---|---|
len(set) | 주어진 집합의원소의 개수 반환 |
copy() | 집합의새로운 얕은 사본을 반환 |
difference(set2) | 호출하는 집합에는 있지만 set2에는 없는 모든 원소의 새로운 집합(차집합)을 반환 |
intersection(set2) | 호출하는 집합과 set2에 공통되는 모든 원소로 이루어진 새로운 집합(교집합)을 반환 |
issubbset(set2) | 호출하는 집합의 모든 원소가 set2의 원소인지(부분집합)의 여부를 반환 |
x in set | x가 set에 포함되는지의 시험하여 그 여부를 반환 |
x not in set | x가 set에 포함되지 않는지를 시험하여 그 여부를 반환 |
union(set2) | 호출하는 집합과 set2양쪽에 속하는 원소로 이루어진 새로운 집합(합집합)을 반환 |
변경 가능 집합의 메서드와 함수
메소드 또는 연산 | 설명 |
---|---|
add(item) | 집합에 속하지 않는 경우에 한하여 item을 집합에 추가 |
clear() | 집합의 모든 항목을 제거 |
difference_update(set2) | set2에 포함되는 원소를 모두 제거 |
discard(element) | 지정된 element가 존재할 경우 집합에서 제거 |
intersection_update(set2) | set2에도 포함되는 원소만 남김 |
pop() | 집합에서 임의의 원소를 반환 |
remove(element) | element가 집합에 남아있는 경우 반환하고, 그렇지 않으면 KeyError를 제기 |
update(set2) | 집합이 set2의 모든 원소를 포함하도록 하여 반환 |