CKtrace's Devlog
[Python] - 집합 자료형 본문
집합(Set) - Feature
집합은 리스트, 튜플, 딕셔너리와 같이 여러 개의 자료를 저장하는 자료형입니다.
그런데 특이하게도 리스트, 튜플, 딕셔너리와 달리 자료 간의 순서가 없습니다.
아래와 같이 집합의 성질을 표로 정리해보았습니다.
집합(Set) | |
순서 | X |
중복 | X |
수정 | X |
삭제 | O |
집합(Set) - Declaration
위에서 집합 자료형이란 무엇이고, 어떤 성질을 갖는지 알아보았습니다.
지금부터는 집합 선언 방법을 코드 블록을 통해 알아보도록 하겠습니다.
# set([])을 이용한 선언 방식
a = set([1, 4, 5, 7, 9])
b = set([1, 2, 'Plate', 'Car', 'Earth'])
# {}을 이용한 선언 방식
c = {'cos', 'sin', 'tan'}
d = {38, (4, 6, 8), 'food', 2.714}
이렇게 위와 같이 선언 방식은 set([ ]), { }을 이용한 두 가지 방식이 있습니다.
집합(Set) - Additional & Deletion
집합은 수정은 불가하지만, 추가와 삭제는 가능합니다.
집합에서 자료를 추가하고 삭제하는 법을 코드 블록을 통해 알아보도록 하겠습니다.
# 집합 선언
s = set([3, 4, 8 ,10, 15])
# 추가
s.add(7)
print(s) # {3, 4, 8, 10, 15, 7}
# 전체 자료 삭제
s.clear()
print(s) # set()
# 지정한 자료 삭제
s.remove(3)
print(s) # {4, 8, 10, 15, 7}
s.discard(4)
print(s) # {8, 10, 15, 7}
# 집합에 없는 자료를 삭제할 때
s.remove(5) # 에러가 납니다.
s.discard(5) # 에러가 나지 않고 다음 실행될 코드가 실행됩니다.
집합(Set) - Application
지금부터는 집합 자료형을 활용하는 여러 가지 방법 또한 코드 블록을 통해 알아보도록 하겠습니다!
# 두 집합 선언
set01 = set([1, 2, 4, 6, 8])
set02 = set([2, 4, 7, 9, 10])
# 교집합(intersection)
print(set01 & set02) # {2, 4}
print(set01.intersection(set02)) # {2, 4}
# 합집합 (union)
print(set01|set02) # {1, 2, 4, 6, 7, 8, 9, 10}
print(set01.union(set02)) # {1, 2, 4, 6, 7, 8, 9, 10}
# 차집합 (difference)
print(set01 - set02) # {1, 6, 7, 8, 9, 10}
print(set01.difference(set02)) # {1, 6, 7, 8, 9, 10}
# 부분 집합 확인
print(set01.issuperset(set02)) # False
print(set01.issubset(set02)) # False
# 중복 원소 확인 (isdisjoint 함수는 두 집합 간에 교집합 존재 시 False, 미존재 시 True )
print(set01.isdisjoint(set02)) # False
여기서 issuperset()과 issubset()의 차이에 대해 의문을 가지신 분들이 계실 겁니다.
지금부터 두 함수의 차이에 대해 설명드리도록 하겠습니다.
이 부분도 코드 블록을 통해 설명드리는 것이 더 나을 것 같아 코드 블록을 이용해서 설명하도록 하겠습니다.
# 두 집합 선언
a = {6, 7, 8, 9, 0}
b = {6, 7, 8}
# issubset()
a.issubset(b) # False
b.issubset(a) # True
# issuperset()
a.issuperset(b) # True
b.issuperset(a) # False
# 위와 같이 issubset()과 issuperset()는 사용하는 방식이 반대입니다!
이렇게 해서 집합 자료형에 대해 알아보았고 긴 글을 읽어주셔서 감사하다는 말씀드리며 글을 마치도록 하겠습니다.
감사합니다!
+α) 리스트, 튜플, 딕셔너리, 집합 이 네 개의 자료형을 서로 비교하시면서 알아가시는 것이 중요합니다!
리스트 자료형
리스트(List) - Feature 리스트(List)는 여러 개의 데이터가 저장되어 있는 자료형입니다. 리스트는 아래의 표와 같은 특징을 갖는데 자료형마다 달라 비교하며 알아두시는 것이 좋습니다! 리스트(List
cktrace.tistory.com
튜플 자료형
튜플(Tuple) - Feature 튜플(Tuple)은 여러 개의 자료를 하나로 묶는 데 사용하는 자료형으로 리스트(List)와 유사한 자료형입니다. 하지만 튜플은 리스트와 유사하지만 아래의 표와 같이 리스트의 특징
cktrace.tistory.com
딕셔너리 자료형
딕서녀리(Dictionary) - Feature 딕셔너리(Dictionary)는 여러 개의 자료를 각각 key와 value로 저장한 자료형입니다. key와 value로 저장했다는 것이 무슨 말인지 지금은 이해되지 않을 수 있지만, 밑에서 여
cktrace.tistory.com
'Python' 카테고리의 다른 글
[Python] - for문 (0) | 2022.01.12 |
---|---|
[Python] - If 조건문 (반복문) (1) | 2022.01.01 |
[Python] - 딕셔너리 자료형 (0) | 2021.12.29 |
[Python] - 튜플 자료형 (0) | 2021.12.26 |
[Python] - 리스트 자료형 (0) | 2021.12.25 |