IT Cookie
[Python 문법] 사전 & 집합 자료형 본문
4. 사전 & 집합 자료형

4-1. 사전 자료형
- 키(key)와 값(Value)의 쌍을 데이터로 가지는 자료형
- 리스트나 튜플이 값을 순차적으로 저장하는 것과 대비됨
- 키와 값의 쌍을 데이터로 가지고, 원하는 "변경 불가능한 자료형"을 키로 사용
- 파이썬의 사전자료형은 해시 테이블(Hash Table)을 이용 => 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리가능
color = dict()
color['초록색'] = 'Green'
color['검정색'] = 'Black'
color['파랑색'] = 'Blue'
print(color)
// {'초록색': 'Green', '검정색': 'Black', '파랑색': 'Blue'}
if '초록색' in color:
print("'초록색'을 키로 가지는 데이터가 존재합니다. ")
// '초록색'을 키로 가지는 데이터가 존재합니다.
[사전 자료형 관련 메서드]
- 사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드를 지원함
- key 데이터만 뽑아서 리스트로 이용할 때는 keys() 함수 사용
- value 데이터만을 뽑아서 리스트로 이용할 때는 values() 함수 사용
# 사전 자료형 관련 함수_연습1
color = dict()
color['초록색'] = 'Green'
color['검정색'] = 'Black'
color['파랑색'] = 'Blue'
# key 데이터만 담은 리스트
key_list = color.keys()
# value 데이터만 담은 리스트
value_list = color.values()
print(key_list) // dict_keys(['초록색', '검정색', '파랑색'])
print(value_list) // dict_values(['Green', 'Black', 'Blue'])
# 각 key에 따른 값을 하나씩 출력해보기
for key in key_list:
print(color[key])
// Green
// Black
// Blue
# 사전 자료형 관련 함수_연습2
a = dict()
a['국어'] = 85
a['수학'] = 90
a['영어'] = 95
print(a) // {'국어': 85, '수학': 90, '영어': 95}
b = {
'국어' : 85,
'수학' : 90,
'영어' : 95
}
print(b)
print(b['영어']) // 95
key_list = list(b.keys())
print(key_list) // ['국어', '수학', '영어']
4-2. 집합 자료형
- 특징 : 중복을 허용하지 않고 순서가 없음
- 리스트 혹은 문자열을 이용해서 초기화 가능
- set() 함수 사용
- 혹은 중괄호({})안에 각 원소를 콤마(,)를 기준으로 구분하여 삽입 => 초기화 가능
- 데이터 조회 및 수정할 경우, O(1)의 시간에 처리
# 초기화 방법1
a = set([1,1,1,2,3,4,4,4,5])
print(a)
// {1, 2, 3, 4, 5}
# 초기화 방법2
a = {1,3,3,6,6,9}
print(a)
// {1, 3, 6, 9}
[집합 자료형의 연산]
- 기본적인 집합 연산 : 합집합, 교집합, 차집합 연산 등
- 합집합 : 집합 A에 속하거나 B에 속하는 원소로 이루어진 집합(A ∪ B)
- 교집합 : 집합 A에도 속하고 B에도 속하는 원소로 이루어진 집합(A ∩ B)
- 차집합 : 집합 A의 원소 중에서 B에 속하지 않는 원소들로 이루어진 집합(A - B)
a = set([0,2,3,4,6,8,15])
b = set([3,6,9,12,15,18])
# 합집합
print(a | b) // {0, 2, 3, 4, 6, 8, 9, 12, 15, 18}
# 교집합
print(a & b) // {3, 6, 15}
# 차집합
print(a - b) // {0, 8, 2, 4}
# 집합 자료형 관련 함수_연습1
a = set([1,2,3,4,5])
print(a) // {1, 2, 3, 4, 5}
# 새로운 원소 추가
a.add(6)
print(a) // {1, 2, 3, 4, 5, 6}
# 새로운 원소 N개 추가
a.update([7,8,9,10])
print(a) // {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
# 특정한 값을 갖는 원소 제거
a.remove(1)
print(a) //{2, 3, 4, 5, 6, 7, 8, 9, 10}
'SW > Python' 카테고리의 다른 글
[Python 문법] 조건문 (0) | 2023.03.07 |
---|---|
[Python 문법] 기본 입출력 (0) | 2023.03.07 |
[Python 문법] 문자열 & 튜플 자료형 (0) | 2023.03.07 |
[Python 문법] 리스트 자료형 (0) | 2023.03.07 |
[Python 문법] 수 자료형 (0) | 2023.03.07 |
Comments