본문 바로가기
Python/문법

[Python] 파이썬 집합 자료형 정리 및 예제

by 에파 2024. 7. 29.
728x90

파이썬에서 집합(Set)은 중복되지 않는 요소들을 저장하는 자료형입니다. 집합은 순서가 없고, 파이썬에서는 다양한 집합 연산을 지원합니다. 이번 글에서는 집합의 기능들에 대해 설명하겠습니다.

 

1. 집합이란?

집합은 중복 없는 요소들의 모음입니다. 집합은 중괄호 '{}'를 사용하여 정의하거나, 'set()' 함수를 사용하여 생성할 수 있습니다. 리스트나 튜플과 달리, 집합은 순서가 없으며 인덱싱을 지원하지 않습니다.

 

# 집합 생성 예시
fruits = {"apple", "banana", "cherry"}
print(fruits)  # 출력: {'apple', 'banana', 'cherry'}

# set() 함수를 사용한 집합 생성
numbers = set([1, 2, 3, 4, 5])
print(numbers)  # 출력: {1, 2, 3, 4, 5}

 

2. 집합의 기본 연산

요소 추가 및 삭제

'add()' 함수를 사용하여 집합에 요소를 추가하고, 'remove()' 또는 'discard()' 함수를 사용하여 요소를 삭제할 수 있습니다.

 

# 요소 추가
fruits.add("orange")
print(fruits)  # 출력: {'apple', 'banana', 'cherry', 'orange'}

# 요소 삭제
fruits.remove("banana")
print(fruits)  # 출력: {'apple', 'cherry', 'orange'}

# discard() 메서드 사용 (존재하지 않는 요소를 삭제해도 에러 발생하지 않음)
fruits.discard("banana")
print(fruits)  # 출력: {'apple', 'cherry', 'orange'}

 

집합 연산

파이썬은 수학적 집합 연산을 지원합니다. 이를 통해 두 집합 간의 합집합, 교집합, 차집합, 대칭차집합 등을 쉽게 구할 수 있습니다.

 

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

# 합집합
union = A | B
print(union)  # 출력: {1, 2, 3, 4, 5, 6}

# 교집합
intersection = A & B
print(intersection)  # 출력: {3, 4}

# 차집합
difference = A - B
print(difference)  # 출력: {1, 2}

# 대칭차집합
symmetric_difference = A ^ B
print(symmetric_difference)  # 출력: {1, 2, 5, 6}

 

3. 집합 관련 함수

'update()'

'update()' 함수는 집합에 여러 요소를 한꺼번에 추가할 때 사용합니다.

 

# update() 메서드 사용 예시
fruits.update(["mango", "grape"])
print(fruits)  # 출력: {'apple', 'cherry', 'orange', 'mango', 'grape'}

 

'clear()'

'clear()' 함수는 집합의 모든 요소를 제거합니다.

 

# clear() 메서드 사용 예시
fruits.clear()
print(fruits)  # 출력: set()

 

'copy()'

'copy()' 함수는 집합의 얕은 복사본을 만듭니다.

 

# copy() 메서드 사용 예시
A = {1, 2, 3}
B = A.copy()
print(B)  # 출력: {1, 2, 3}

 

'issubset()', 'issuperset()'

'issubset()' 함수는 집합이 다른 집합의 부분집합인지 확인하고, 'issuperset()' 함수는 집합이 다른 집합의 상위집합인지 확인합니다.

 

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

print(A.issubset(B))  # 출력: True
print(B.issuperset(A))  # 출력: True

 

'isdisjoint()'

'isdisjoint()' 함수는 두 집합이 서로소인지(공통 요소가 없는지) 확인합니다.

 

A = {1, 2, 3}
C = {4, 5, 6}

print(A.isdisjoint(C))  # 출력: True

 

4. 집합 컴프리헨션

집합 컴프리헨션은 리스트 컴프리헨션과 유사한 문법으로 집합을 생성하는 방법입니다.

 

# 집합 컴프리헨션 예시
squares = {x**2 for x in range(10)}
print(squares)  # 출력: {0, 1, 4, 9, 16, 25, 36, 49, 64, 81}

 

 

 

파이썬 집합에 대해 알아보았습니다. 파이썬에서 집합은 중복 없는 데이터를 저장하고, 다양한 수학적 집합 연산을 제공하는 매우 유용한 자료형입니다. 이를 이용하면 데이터를 더욱 효율적으로 관리할 수 있겠습니다.

댓글