본문 바로가기
프로그래밍/파이썬 공부하기

Python 공부하기 - 6 (세트)

by _OlZl 2024. 6. 30.

2024.01.27 - [프로그래밍/파이썬 공부하기] - Python 공부하기 - 5 (딕셔너리, 튜플)

 

Python 공부하기 - 5 (딕셔너리, 튜플)

2024.01.26 - [프로그래밍/파이썬 공부하기] - Python 공부하기 - 4 (리스트) Python 공부하기 - 4 (리스트) 2024.01.24 - [프로그래밍/파이썬 공부하기] - Python 공부 - 3 (클래스, 메서드, 인스턴스, 객체, 속성) P

olzl07.tistory.com

 

이전까지는 딕셔너리, 튜플에 대해 배웠습니다. 마침 시험범위도 겹치고 해서 시험 범위인 부분을 간단히 끄적거려보려 합니다. 첫 번째는 세트(set)입니다.


세트 (Set)

- 세트(Set) :

순서가 없고 중복을 허용하지 않는 컬렉션. 변경 가능

중괄호 ‘[ ]’를 사용하여 생성하며, 중복 제거, 합집합, 교집합과 같은 집합 연산에 사용

 

- 관련 함수

# 세트 생성
my_set = {1, 2, 3, "Python"}

# 요소 추가
my_set.add(5)

# 요소 삭제
my_set.remove(2)  # 요소가 없으면 에러
또는 my_set.discard(2) # 없어도 에러X

이와 같이 생성, 추가, 삭제 등이 가능합니다.

 

또, 순서가 없고 중복을 허용하지 않는다는 점이 집합과 비슷해 집합 연산에도 쓰인다고 합니다.

a = {1, 2, 3, 4, 5}
b = {2, 4, 5, 6 ,7}

# 합집합
print(a|b)
print(a.union(b))

# 교집합
print(a&b)
print(a.intersection(b))

# 차집합
print(a-b)
print(a.difference(b))

# 대칭차집합
print(a^b)
print(a.symmetric_difference)
{1, 2, 3, 4, 5, 6, 7}
{1, 2, 3, 4, 5, 6, 7}
{2, 4, 5}
{2, 4, 5}
{1, 3}
{1, 3}
{1, 3, 6, 7}

 

세트 간의 관계가 부분집합인지 상위집합인지도 확인할 수 있습니다.

a = {1, 2}
b = {1, 2, 3 ,4}

print(a.issubset(b)) # a가 b의 부분집합인지
print(b.issuperset(a)) # b가 a의 상위집합인지
True
True