본문 바로가기

Python

[Python] 집합 자료형(set) 사용 방법

집합 자료형 만드는 방법

집합 자료형은 `set()`을 이용해 생성할 수 있습니다. 사용 방법은 `set(리스트 또는 문자열 등…)`입니다.

예시

> set([1, 2, 2, 3])
{1, 2, 3}

> set(“hello”)
{‘e’, ‘h’, ‘l’, ‘o’}

특징

집합 자료형의 가장 큰 특징은 중복을 허용하지 않는다는 점입니다. 위 예시처럼 `set()`을 이용해 집합 자료형으로 만든 경우, 1번 예시에서는 ‘2’가 2번 예시에서는 ’l’이 하나씩 빠져 있습니다.

또 다른 특징으로는 순서가 없다는 점입니다. 2번 예시를 보면 순서가 섞여 있는 모습을 볼 수 있습니다. 따라서 집합 자료형은 리스트나 튜플과 달리 인덱스를 이용해 값을 가져올 수 없습니다.

활용

이러한 집합 자료형의 특징을 이용해 중복된 항목을 제거하는 필터 역할로 사용할 수 있습니다.

집합 자료형의 연산

설명을 위해 다음과 같이 집합 자료형의 변수 s1, s2를 정의하겠습니다.

s1 = set([1, 2, 3, 4])
s2 = set([3, 4, 5, 6])


교집합

교집합은 `&`를 이용하여 구할 수 있습니다.

> s1 & s2
{3, 4}


합집합

합집합은 `|`를 이용하여 구할 수 있습니다.

> s1 | s2
{1, 2, 3, 4, 5, 6}

차집합

차집합은 `-`를 이용하여 구할 수 있습니다.

> s1 - s2
{1, 2}

이 외의 함수들

집합에 값을 추가하고 싶다면 `add()` 함수를 이용할 수 있습니다.

s = set([1, 2, 3])
s.add(4)
print(s)
# {1, 2, 3, 4}


만약 집합에 값을 여러 개 추가하고 싶다면 `update()` 함수를 이용하면 됩니다.

s = set([1, 2, 3])
s.update([4, 5, 6])
print(s)
# {1, 2, 3, 4, 5, 6}


값을 추가하는 것 이외에 특정 값을 제거하고 싶다면 `remove()` 함수를 이용하면 됩니다.

s = set([1, 2, 3])
s.remove(1)
print(s)
# {2, 3}

참고

https://docs.python.org/ko/3/library/stdtypes.html?highlight=set#set