Dictionary
Dictionary 개념
먼저 Dictionary는 키와 값을 갖는 데이터 구조를 가지고 있습니다.
키는 내부적으로 hash 값으로 저장되어 있으며 순서를 따지지 않습니다. 즉, 인덱스가 없다고 할 수 있습니다.
Dictionary 생성 예제
a = {'한식': '불고기',
'중식': '탕수육',
'일식': '스시'}
b = {0:1, 1:6, 7:9, 8:10, 2:3}
print(b[2])
print(a['한식'])
## 출력 값
# 3
# 불고기
Dictionary 항목 추가 및 변경 예시
기존에 키가 존재하면, 새로운 값으로 업데이트
존재하지 않으면, 새로운 키, 값 생성
먼저 한식에 value값을 삼겹살로 바꾸고 양식에 스파게티를 한번 추가해보겠습니다.
a = {'한식': '불고기',
'중식': '탕수육',
'일식': '스시'}
a['한식'] = '삼겹살'
a['양식'] = '스파게티'
print(a)
## 출력 값
# {'한식': '삼겹살', '중식': '탕수육', '일식': '스시', '양식': '스파게티'}
기존의 있는 한식의 value가 불고기에서 삼겹살로 바뀐것을 확인 할 수 있고
또한 없던 양식의 key 값과 value값이 생긴것을 확인할 수 있습니다.
Dictionary Update( )
Dictionary를 서로 병합하고 싶으면 Update( )를 사용합니다
겹쳐지는 키가 있다면 parameter로 전달되는 키 값이 overwrite됩니다.
a = {
'a' : 'apple',
'b' : 'banana',
'c' : 'cherry',
}
b = {
'd' : 'dope',
'e' : 'egg',
'f' : 'fake'
}
a.update(b)
print(a)
## 출력 값
# {'a': 'apple', 'b': 'banana', 'c': 'cherry', 'd': 'dope', 'e': 'egg', 'f': 'fake'}
Dictionary 에서 key를 삭제하기
del 키워드를 이용해 아예 삭제하거나 pop를 이용해 value를 반환한 후 key를 삭제하는 방법이 있습니다.
class_name = {
0 : '자료구조',
1 : '컴퓨터 공학',
2 : '알고리즘',
3 : 'python',
4 : 'C++',
5 : '경제학개론',
6 : '법과 정치'
}
print(class_name)
del class_name[5]
print(class_name)
other_class = class_name.pop(6)
print(other_class)
print(class_name)
## 출력 값
# {0: '자료구조', 1: '컴퓨터 공학', 2: '알고리즘', 3: 'python', 4: 'C++', 5: '경제학개론', 6: '법과 정치'}
# {0: '자료구조', 1: '컴퓨터 공학', 2: '알고리즘', 3: 'python', 4: 'C++', 6: '법과 정치'}
# 법과 정치
# {0: '자료구조', 1: '컴퓨터 공학', 2: '알고리즘', 3: 'python', 4: 'C++'}
Dictionary의 모든 값을 초기화 시키기 위한 clear( ) 함수
Dictionary의 값들을 모든 값을 초기화 시키기 위해 clear( ) 함수를 이용해 값들을 초기화 시켜줍니다.
예시는 아래와 같습니다.
a = { 1:5, 2:10, 3:15, 4:20, 5:25, 6:30}
print(a)
a.clear()
print(a)
## 출력 값
# {1: 5, 2: 10, 3: 15, 4: 20, 5: 25, 6: 30}
# {}
key의 값 존재 확인을 위한 in
in 연산은 O(1) 연산 이므로 딕셔너리의 크기와 관계 없이 항상 연산 속도가 일정합니다.
number = {
'zero' : 0,
'one' : 1,
'two' : 2,
'three' : 3
}
number_list = [1,2,3,4,5,6,7,100,200,300]
print(number)
print('two' in number)
print(360 in number_list)
## 출력 값
# {'zero': 0, 'one': 1, 'two': 2, 'three': 3}
# True
# False
Dictionary 의 value access
먼저 Dictionary의 값을 접근하는 방법은
dict[key] : 키가 없는 경우 에러 발생
.get( ) 함수로 접근, 키가 없는 경우 None반환
예시는 아래와 같습니다.
class_name = {
0 : '자료구조',
1 : '컴퓨터 공학',
2 : '알고리즘',
3 : 'python',
4 : 'C++',
5 : '경제학개론',
6 : '법과 정치'
}
print(class_name.get(0))
print(class_name[3])
# print(class_name[7]) -> 에러가 발생하므로 if를 이용해 아래와 같이 표현
if 7 in class_name:
print(class_name[7])
## 출력 값
# 자료구조
# python
Dictionary 에서 모든 keys, values를 접근하기 위한 함수들
keys( ) - 키만 반환
values( ) - 값만 반환
items( ) - 키, 값의 튜플을 반환
예시는 다음과 같습니다.
class_name = {
0 : '자료구조',
1 : '컴퓨터 공학',
2 : '알고리즘',
3 : 'python',
4 : 'C++',
5 : '경제학개론',
6 : '법과 정치'
}
print(class_name)
print(list(class_name.keys()))
print(list(class_name.values()))
list(class_name.ites())
## 출력 값
# {0: '자료구조', 1: '컴퓨터 공학', 2: '알고리즘', 3: 'python', 4: 'C++', 5: '경제학개론', 6: '법과 정치'}
# [0, 1, 2, 3, 4, 5, 6]
# ['자료구조', '컴퓨터 공학', '알고리즘', 'python', 'C++', '경제학개론', '법과 정치']
# [(0, '자료구조'),
# (1, '컴퓨터 공학'),
# (2, '알고리즘'),
# (3, 'python'),
# (4, 'C++'),
# (5, '경제학개론'),
# (6, '법과 정치')]
'Python > Python 개념' 카테고리의 다른 글
파이썬 함수 - 기초 (0) | 2020.03.29 |
---|---|
파이썬 반복분(While) (1) | 2020.03.29 |
파이썬 반복문(for) (0) | 2020.03.28 |
파이썬 조건문 (0) | 2020.03.28 |
파이썬 List, Tuple의 개념 (0) | 2020.03.28 |
댓글