Python / 자료형 / 집합(set)
목차
집합(set)
집합은 여러 개의 자료를 하나의 변수로 관리할 때 사용하는 자료형 중의 하나입니다.
집합 자료형은 수학의 집합과 같은 성질을 가집니다. 즉, 집합은 중복된 데이터를 가질 수 없고, 순서가 없습니다. 따라서 순서와 관련된 인덱스기호([ ])를 사용할 수 없고, 중복 데이터를 만드는 +, *를 사용할 수 없습니다. 하지만, in, not in, len()은 사용할 수 있습니다.
집합 만들기
집합은 중괄호로 만듭니다.
>>> jb = {1,2,3,4,5} >>> jb {1, 2, 3, 4, 5} >>> type(jb) <class 'set'>
빈 집합, 즉 공집합은 다음과 같이 만듭니다.
>>> jb = set() >>> type(jb) <class 'set'>
집합의 길이 구하기
>>> jb = {1,2,3} >>> len(jb) 3
값이 있는지 확인하기
>>> jb = {1,2,3} >>> 1 in jb True >>> 4 in jb False
값이 없는지 확인하기
>>> jb = {1,2,3} >>> 1 not in jb False >>> 4 not in jb True
원소 추가하기
하나의 원소를 추가할 때는 .add()를 사용합니다.
>>> jb = {1,2,3} >>> jb.add(4) >>> jb {1, 2, 3, 4}
여러 개의 원소를 한 번에 추가할 때는 .update()를 사용합니다.
>>> jb = {1,2,3} >>> jb.update([4,5,6]) >>> jb {1, 2, 3, 4, 5, 6}
원소 제거하기
.remove()로 원소를 제거합니다. 없는 원소를 제거하려 하면 에러가 납니다.
>>> jb = {1,2,3} >>> jb.remove(3) >>> jb {1, 2} >>> jb.remove(5) Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> jb.remove(5) KeyError: 5
.discard()로 원소를 제거하면, 없는 원소를 제거하려 할 때 에러가 나지 않습니다.
>>> jb = {1,2,3} >>> jb.discard(3) >>> jb {1, 2} >>> jb.discard(5) >>>
.pop()은 임의의 원소를 하나 가져온 후 삭제합니다.
>>> jb = {1,2,3} >>> jb.pop() 1 >>> jb {2, 3}
.clear()는 모든 원소를 지우고 공집합으로 만듭니다.
>>> jb = {1,2,3} >>> jb.clear() >>> jb set()
교집합, 합집합, 차집합 구하기
교집합은 & 또는 .intersection()으로, 합집합은 | 또는 .union()으로, 차집합은 - 또는 .difference()로 구합니다.
>>> jb1 = {1,2,3} >>> jb2 = {3,4,5} >>> jb1 & jb2 {3} >>> jb1.intersection(jb2) {3} >>> jb1 | jb2 {1, 2, 3, 4, 5} >>> jb1.union(jb2) {1, 2, 3, 4, 5} >>> jb1 - jb2 {1, 2} >>> jb1.difference(jb2) {1, 2}