Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

CKtrace's Devlog

[Python] - 집합 자료형 본문

Python

[Python] - 집합 자료형

CKtrace 2021. 12. 29. 08:33

 

 

 

 

 

집합(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
Comments