본문 바로가기
IT/Python Basic

[Python] 초급 개념8 - 집합 (set)

by Echinacea 2025. 2. 18.
반응형

집합(set)은 중복을 허용하지 않고, 순서가 없는 데이터 구조입니다. 파이썬의 집합은 수학에서의 집합과 유사하게 동작하며, 다양한 집합 연산을 제공합니다.

 

 

1. 집합 생성

집합은 중괄호 {} 또는 set() 함수를 사용하여 생성할 수 있습니다.

# 중괄호를 사용하여 집합 생성
my_set = {1, 2, 3, 4, 5}
print(my_set)

# set() 함수를 사용하여 리스트를 집합으로 변환
my_set2 = set([1, 2, 3, 2, 1])
print(my_set2)  # {1, 2, 3} (중복 제거)

 

 

2. 집합의 주요 특징

  • 중복이 자동으로 제거됨: 같은 요소가 여러 번 있어도 한 번만 저장됨.
  • 순서가 없음: 인덱싱이 불가능하여 위치 기반 접근이 불가.
  • mutable(변경 가능)하지만, 내부 요소는 immutable해야 함: 리스트나 딕셔너리는 집합의 요소로 사용 불가.

 

 

3. 집합 연산

집합은 수학적 개념의 연산을 제공하여, 교집합, 합집합, 차집합 등을 쉽게 처리할 수 있습니다.

 

✅ 합집합 (| 또는 union())

A = {1, 2, 3}
B = {3, 4, 5}
print(A | B)  # {1, 2, 3, 4, 5}
print(A.union(B))  # 동일한 결과

 

✅ 교집합 (& 또는 intersection())

print(A & B)  # {3}
print(A.intersection(B))  # 동일한 결과

 

✅ 차집합 (- 또는 difference())

print(A - B)  # {1, 2}
print(A.difference(B))  # 동일한 결과

 

✅ 대칭 차집합 (^ 또는 symmetric_difference())

print(A ^ B)  # {1, 2, 4, 5}
print(A.symmetric_difference(B))  # 동일한 결과

 

 

4. 집합의 주요 메서드

my_set = {1, 2, 3}

# 요소 추가
my_set.add(4)
print(my_set)  # {1, 2, 3, 4}

# 요소 삭제
my_set.remove(2)
print(my_set)  # {1, 3, 4}

# 요소 임의 삭제
my_set.pop()
print(my_set)  # 어떤 요소가 삭제될지 예측할 수 없음

# 전체 비우기
my_set.clear()
print(my_set)  # set()

 

 

5. 집합의 활용 예시

집합을 활용하면 리스트에서 중복 제거가 쉽습니다.

my_list = [1, 2, 2, 3, 3, 4]
unique_list = list(set(my_list))
print(unique_list)  # [1, 2, 3, 4]

 

 

6. 마무리

이번 문서에서는 집합(set)의 개념과 활용 방법을 학습했습니다.

 

✅ 핵심 요약

  • 집합은 중복을 허용하지 않고 순서가 없는 자료형
  • |, &, -, ^ 연산자를 사용하여 집합 연산 수행 가능
  • add(), remove(), pop(), clear() 등의 메서드를 활용 가능
  • 리스트에서 중복 제거 시 유용하게 활용 가능

 

반응형

댓글