본문 바로가기
GD's IT Lectures : 기초부터 시리즈/파이썬(Python) 기초부터 ~

[파이썬(PYTHON)] 기본적인 자료구조 - 집합

by GDNGY 2023. 5. 3.

6.4. 집합

집합(Set)은 중복되지 않는 순서 없는 항목들의 모음입니다. 파이썬의 집합은 수학적 집합의 성질을 가지며, 집합 연산(합집합, 교집합, 차집합 등)을 지원합니다.

 

6.4.1. 집합 생성과 연산

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

 

  • 집합 생성
set_a = {1, 2, 3, 4, 5}
set_b = set([4, 5, 6, 7, 8])
print(set_a)  # {1, 2, 3, 4, 5}
print(set_b)  # {4, 5, 6, 7, 8}

 

빈 집합을 생성할 때에는 반드시 set() 함수를 사용해야 합니다. 중괄호 {}만 사용하면 빈 딕셔너리가 생성됩니다.

empty_set = set()
print(empty_set)  # set()

 

  • 집합 연산

집합 연산은 수학적 집합의 연산과 같이 사용할 수 있습니다.

  • 합집합 (Union): |
  • 교집합 (Intersection): &
  • 차집합 (Difference): -
  • 대칭 차집합 (Symmetric Difference): ^
set_a = {1, 2, 3, 4, 5}
set_b = {4, 5, 6, 7, 8}

union_set = set_a | set_b
intersection_set = set_a & set_b
difference_set = set_a - set_b
symmetric_difference_set = set_a ^ set_b

print("Union:", union_set)                 # Union: {1, 2, 3, 4, 5, 6, 7, 8}
print("Intersection:", intersection_set)   # Intersection: {4, 5}
print("Difference:", difference_set)       # Difference: {1, 2, 3}
print("Symmetric Difference:", symmetric_difference_set)  # Symmetric Difference: {1, 2, 3, 6, 7, 8}

 

6.4.2. 집합 메서드

파이썬 집합은 다양한 메소드를 지원하며, 이를 통해 집합의 요소를 추가, 삭제 및 검색할 수 있습니다.

 

  • add(element) : 집합에 요소를 추가합니다. 만약 요소가 이미 집합에 존재하면 아무런 변화가 일어나지 않습니다.
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
print(fruits)  # {'orange', 'cherry', 'apple', 'banana'}

 

  • remove(element) : 집합에서 요소를 제거합니다. 만약 요소가 집합에 존재하지 않으면 KeyError가 발생합니다.
fruits = {"apple", "banana", "cherry"}
fruits.remove("banana")
print(fruits)  # {'apple', 'cherry'}

 

  • discard(element) : 집합에서 요소를 제거합니다. 만약 요소가 집합에 존재하지 않아도 아무런 에러가 발생하지 않습니다.
fruits = {"apple", "banana", "cherry"}
fruits.discard("banana")
fruits.discard("grape")
print(fruits)  # {'apple', 'cherry'}

 

  • pop() : 집합에서 임의의 요소를 제거하고 반환합니다. 집합이 비어 있으면 KeyError가 발생합니다.
fruits = {"apple", "banana", "cherry"}
popped_fruit = fruits.pop()
print(popped_fruit)  # 결과는 실행할 때마다 달라질 수 있습니다.
print(fruits)        # 결과는 실행할 때마다 달라질 수 있습니다.

 

  • clear() : 집합의 모든 요소를 제거합니다.
fruits = {"apple", "banana", "cherry"}
fruits.clear()
print(fruits)  # set()

 

  • issubset(other) : 집합이 다른 집합의 부분집합인지 확인합니다. 부분집합이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
result = set_a.issubset(set_b)
print(result)  # True

 

  • issuperset(other) : 집합이 다른 집합의 상위집합인지 확인합니다. 상위집합이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
result = set_b.issuperset(set_a)
print(result)  # True

 

  • isdisjoint(other) : 두 집합이 서로 겹치는 요소가 없는지 확인합니다. 겹치는 요소가 없으면 True를 반환하고, 겹치는 요소가 있으면 False를 반환합니다.
set_a = {1, 2, 3}
set_b = {4, 5, 6}
result = set_a.isdisjoint(set_b)
print(result)  # True

 

이처럼 파이썬의 집합은 다양한 메서드를 지원하며, 이를 활용하여 집합에 관련된 작업을 쉽게 처리할 수 있습니다. 집합은 중복을 허용하지 않기 때문에, 중복을 제거하는데 유용하게 사용될 수 있습니다.

 

 

2023.05.03 - [프로그래밍/파이썬(Python) 기초부터 ~] - [파이썬(PYTHON)] 기본적인 자료구조 - 딕셔너리

 

[파이썬(PYTHON)] 기본적인 자료구조 - 딕셔너리

6.3. 딕셔너리 딕셔너리(dictionary)는 파이썬의 매우 유용한 자료구조입니다. 딕셔너리는 키(key)와 값(value) 쌍으로 이루어진 데이터를 저장하고 관리하는 데 사용됩니다. 딕셔너리는 키를 기반으로

gdngy.tistory.com

 

반응형

댓글