복습(Python)

02 - 5 집합 자료

mrgong-robotics 2026. 3. 3. 17:36

파이썬 집합(Set) 자료형 정리

파이썬의 집합(Set)은 중복을 허용하지 않고, 순서가 없는 자료형입니다.
수학에서 배우는 집합과 동일한 개념으로 이해하면 됩니다.


1. 집합 기본 구조

 
집합이름 = {값1, 값2, 값3}
 

예시:

 
numbers = {1, 2, 3}
 
  • 중괄호 {} 사용
  • 중복 허용하지 않음
  • 순서 없음 (인덱스 사용 불가)

2. 집합 생성 방법

1) 기본 생성

 
data = {1, 2, 3, 4}
 

2) 중복 제거 예시

 
data = {1, 1, 2, 2, 3}
print(data)
 

출력:

 
{1, 2, 3}
 

자동으로 중복이 제거됩니다.

3) 빈 집합 생성 (주의)

 
data = set()
 

주의:

 
data = {}
 

위 코드는 빈 딕셔너리입니다.
빈 집합을 만들려면 반드시 set()을 사용해야 합니다.


3. 집합의 특징

  1. 중복을 허용하지 않는다.
  2. 순서가 없다.
  3. 인덱싱이 불가능하다.
  4. 수학적 집합 연산이 가능하다.

4. 집합 연산 (가장 중요)

 
A = {1, 2, 3}
B = {3, 4, 5}
 

1) 교집합 (intersection)

 
print(A & B)
 

또는

 
print(A.intersection(B))
 

출력:

 
{3}
 

2) 합집합 (union)

 
print(A | B)
 

또는

 
print(A.union(B))
 

출력:

 
{1, 2, 3, 4, 5}
 

3) 차집합 (difference)

 
print(A - B)
 

또는

 
print(A.difference(B))
 

출력:

 
{1, 2}
 

5. 값 추가 / 삭제

1) 값 1개 추가

 
data = {1, 2, 3}
data.add(4)
 

2) 여러 개 추가

 
data.update([5, 6])
 

3) 값 삭제

 
data.remove(2)
 

주의: 존재하지 않는 값을 삭제하면 오류 발생

안전한 삭제:

 
data.discard(10)
 

존재하지 않아도 오류가 발생하지 않습니다.


6. 리스트와 집합의 차이

리스트

 
arr = [1, 2, 2, 3]
 
  • 중복 허용
  • 순서 있음
  • 인덱스 가능

집합

 
data = {1, 2, 3}
 
  • 중복 불가
  • 순서 없음
  • 인덱스 불가

7. 실전 활용 예시 (중복 제거)

 
names = ["홍길동", "홍길동", "이순신"]
unique_names = set(names)

print(unique_names)
 

출력:

 
{'홍길동', '이순신'}
 

데이터 정제 작업에서 매우 자주 사용됩니다.


핵심 정리

집합(Set)은

  • 중복 제거가 필요할 때
  • 빠른 포함 여부 확인이 필요할 때
  • 수학적 집합 연산이 필요할 때

사용하는 자료형이다.

'복습(Python)' 카테고리의 다른 글

02 - 7 변수  (0) 2026.03.03
02 - 6 불(bool) 자료  (0) 2026.03.03
02 - 4 딕셔너리 자료형  (0) 2026.03.03
02 - 3 튜플 자료형  (0) 2026.02.25
02 - 2 리스트 자료형  (0) 2026.02.25