본문 바로가기
개발/python

[python] 집합(set)

by 77monkey 개발자 2025. 6. 21.
반응형

 

 

 

 

이번에는 집합(set)에 대해서 알아보려고 합니다. 수학에서도 집합이 있는데, 해당 집합과 유사합니다. 교집합도 있고 합집합도 있고 차집합도 있습니다. python에서의 집합에 대해서 알아봅시다.

집합(set)

집합(set)은 수학에서의 집합과 같은 개념으로, 중복을 허용하지 않고 순서가 없습니다. 그래서 리스트나 튜플과는 다른 독특한 특성과 연산 기능을 가지고 있습니다. 집합(set)을 선언하는 방법은 크게 2가지가 있습니다. 중괄호 {}를 이용해서 선언하는 방법과 set 함수를 이용하는 방법입니다. 아래 코드처럼 선언해서 사용할 수 있습니다. 또한 중복을 제거하는 특징도 있습니다. 이에 중복된 값을 제거할 때 집합(set)을 사용하는 것도 좋은 방법이 됩니다.

monkey = {"77", "monkey", "blog"}
print(monkey)

new_monkey = set(["77", "monkey", "blog"])
print(new_monkey)

s = {1, 2, 3, 3, 4, 4, 5}
print(s)

집합 예시 1
집합 예시 1

한가지 주의할 점은 빈 집합을 만드는 부분입니다. 빈 집합을 만들 때에는 중괄호 {}를 통해서 만들지 않고, set()를 이용해서 만들어야 합니다. 중괄호 {}를 통해서 만들게 되면 딕셔너리가 되기 때문입니다. 

print(type(set()))
print(type({}))

집합 예시 2
집합 예시 2

집합(set) 함수

집합(set) 함수에는 다양한 함수들이 있습니다. 각각의 함수들에 대해서 알아보도록 하겠습니다. 

집합(set) 함수

  • add() 함수: add() 함수는 원소를 추가합니다.
  • remove() 함수: remove() 함수는 원소를 제거합니다. 제거할 원소가 없을 경우 에러가 발생합니다. 
  • dscard() 함수: discard() 함수는 remove() 함수와 유사하게 원소를 제거합니다. 다만 제거할 원소가 없을 경우에 에러가 발생하지 않습니다. 
  • pop() 함수: pop() 함수는 임의의 원소 제거 후 반환합니다. 
  • clear() 함수: clear() 함수는 모든 원소를 제거합니다. 
  • copy() 함수: copy()는 얕은 복사를 합니다.

예제

위에서 설명드린 함수들에 대해서 하나의 예제를 만들어 보았습니다. 예제를 통해서 해당 함수들에 잘 파악하시면 좋을 것 같습니다.

s = {1, 2, 3}
s.add(4)
s.remove(2)
s.discard(5)
print(s)

s.pop()
print(s)

print(s.clear())

s1 = set([1,2,3])
s2 = s1.copy()
print(s1)
print(s2)

집합 예시 3
집합 예시 3

집합(set) 연산

집합(set) 연산

수학적인 부분은 따로 언급하지 않도록 하겠습니다. python에서 함수 사용에 대해서만 말씀드리겠습니다.

  • 합집합: 합집합은 | 또는 union()를 통해서 연산할 수 있습니다. 
  • 교집합: 교집합은 & 또는 intersectrion()를 통해서 연산할 수 있습니다.
  • 차집합: 차집합은 - 또는 difference()를 통해서 연산할 수 있습니다.

예제

합집합, 교진합, 차집합에 대한 예제는 다음과 같습니다. 간단하게 숫자 몇 개를 통해서 집합을 생성하였고, 이에 대해서 집합(set) 연산을 진행했습니다.

a = set([1,2,3])
b = {3, 4, 5}

print(a | b)
print(a & b)
print(a - b)

집합 예제 4
집합 예제 4

 

마무리

집합(set)을 알기 위해서는 수학에서 사용하는 집합에 대해서 잘 알고 계시면 큰 도움이 됩니다. 혹시나 집합에 대해서 헷갈리시면 간단하게 수학 개념을 익히시면 도움이 될 것으로 보입니다. 

반응형

'개발 > python' 카테고리의 다른 글

[python] bool  (0) 2025.06.22
[python] 딕셔너리(Dictionary) 관련 함수  (0) 2025.06.20
[python] 딕셔너리(Dictionary) 소개  (0) 2025.05.17
[python] 튜플(Tuple)  (0) 2024.09.22
[python] 리스트(List) 관련 함수  (0) 2024.09.21