프로그래밍/파이썬 공부하기
Python 공부하기 - 6 (세트)
_OlZl
2024. 6. 30. 16:53
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"}
또는
a = [1, 2, 3, "Python"]
my_set = set(a)
# 요소 추가
my_set.add(5)
또는
seq = [4, 5, 6]
my_set.update(seq) # 시퀀스(문자열, 리스트 등)를 집합으로 바꿔 원소에 추가
# 요소 삭제
my_set.remove(2) # 요소가 없으면 에러
또는
my_set.discard(2) # 없어도 에러X
또는
my_set.pop() # 무작위 원소 삭제
이와 같이 생성, 추가, 삭제 등이 가능합니다.
a = [1, 2, 3, "Python"]
my_set = set(a)
my_set.add(4)
print(my_set)
seq = [5, 6, 7]
my_set.update(seq)
print(my_set)
my_set.remove(2)
print(my_set)
my_set.discard(4)
print(my_set)
my_set.pop()
print(my_set)
{1, 2, 3, 4, 'Python'}
{1, 2, 3, 4, 'Python', 5, 6, 7}
{1, 3, 4, 'Python', 5, 6, 7}
{1, 3, 'Python', 5, 6, 7}
{3, 'Python', 5, 6, 7}
실행 결과를 보니 pop에서 무작위로 1이 삭제됐네요.
또, 순서가 없고 중복을 허용하지 않는다는 점이 집합과 비슷해 집합 연산에도 쓰인다고 합니다.
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}
{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
이외에 기본적인 함수들도 있습니다.
my_set = {1, 2, 3, "Python"}
print(len(my_set))
my_set_2 = my_set.copy()
print(my_set_2)
my_set.clear()
print(my_set)
4
{1, 2, 3, 'Python'}
set()