Python/파이썬 기초 강의(2024)★

파이썬: 집합 자료형 개요 Overview of Set Data Types

코딩ABC 2024. 10. 30. 06:52
반응형

Python의 set(집합)은 고유한 값을 저장하고, 중복을 허용하지 않는 자료형입니다. 수학에서의 집합과 비슷한 연산을 제공하며, 추가, 삭제, 합집합, 교집합 등의 다양한 연산을 지원합니다. 주요 특징과 기능은 다음과 같습니다.

 

> 리스트 list   - https://coding-abc.kr/325
> 튜플 tuple   - https://coding-abc.kr/326
> 딕셔너리 dictionary  - https://coding-abc.kr/327
>> 집합 set 

 

1. 집합 생성

  • set() 함수를 사용하여 생성하거나 {} 중괄호를 이용해 생성할 수 있습니다.
  • 빈 집합을 생성할 때는 set()을 사용해야 합니다. {}는 빈 딕셔너리로 인식됩니다.
# 집합 생성 예시
my_set = {1, 2, 3}
empty_set = set()

 

2. 집합의 주요 특징

  • 중복 없음: 동일한 값이 여러 번 포함될 수 없습니다.
  • 순서 없음: 인덱스로 접근할 수 없으며, 순서가 보장되지 않습니다.
  • 가변성: 추가 및 삭제가 가능하지만 집합 내에 변경 불가능한(immutable) 객체만 포함될 수 있습니다.

3. 집합 연산

  • 추가하기: add() 메서드를 사용하여 원소를 추가합니다.
  • 삭제하기: remove() 또는 discard() 메서드를 사용하여 원소를 제거할 수 있습니다.
    • remove()는 없는 원소를 삭제할 때 오류를 발생시키지만, discard()는 오류를 발생시키지 않습니다.
# 원소 추가 및 삭제
my_set.add(4)          # {1, 2, 3, 4}
my_set.remove(2)       # {1, 3, 4}
my_set.discard(5)      # 오류 없이 진행됨

 

4. 집합 연산자

  • 합집합: | 또는 union() 메서드 사용
  • 교집합: & 또는 intersection() 메서드 사용
  • 차집합: - 또는 difference() 메서드 사용
  • 대칭차집합: ^ 또는 symmetric_difference() 메서드 사용
# 예시
set_a = {1, 2, 3}
set_b = {2, 3, 4}

# 합집합
union_set = set_a | set_b           # {1, 2, 3, 4}

# 교집합
intersection_set = set_a & set_b    # {2, 3}

# 차집합
difference_set = set_a - set_b      # {1}

# 대칭차집합
symmetric_diff = set_a ^ set_b      # {1, 4}

 

파이썬: 집합(set)

5. 기타 메서드

  • 부분집합 확인: issubset() - 다른 집합의 부분집합인지 확인
  • 상위집합 확인: issuperset() - 다른 집합의 상위집합인지 확인
  • 공집합 확인: isdisjoint() - 두 집합이 공통 원소가 없는지 확인
# 예시
set_a = {1, 2}
set_b = {1, 2, 3}

print(set_a.issubset(set_b))      # True
print(set_b.issuperset(set_a))    # True
print(set_a.isdisjoint(set_b))    # False

 

 

이처럼 Python의 집합은 데이터의 중복을 허용하지 않고, 다양한 집합 연산을 효율적으로 수행할 수 있는 자료형입니다.

반응형