[22.07.28] Dictionary
딕셔너리
#딕셔너리 #해시테이블 #딕셔너리문법 #딕셔너리메서드
1. 해시테이블
파이썬에는 딕셔너리 자료구조가 내장되어 있다.
Non-sequence, Iterable, Key-Value
key는 변경 불가능
딕셔너리는 해시 테이블을 이용하여 Key : Value 를 저장
-
해시 함수
임의 길이 데이터를 고정 길이의 데이터로 매핑하는 함수
-
해시
해시 함수를 통해 얻어진 값
파이썬의 딕셔너리는 해시 함수와 해시 테이블을 이용하여
CRUD 연산의 속도가 리스트보다 빠르다!!
2. 딕셔너리 기본 문법
-
선언
a = { 'name' : 'kyle' 'gender' : 'male' }
-
삽입, 수정
키가 있으면 수정, 없으면 삽입
a = { 'name' : 'kyle' 'gender' : 'male' } # 수정 a['name']='jason' # 삽입 a['address']='Seoul'
-
삭제
-
딕셔너리.pop(key)
key의 value 반환 및 삭제, 존재하지 않는 key는 KeyError 발생
a = { 'name' : 'kyle' 'gender' : 'male' } gender = a.pop('gender') print(a) # {'name':'kyle'} print(gender) # male
-
딕셔너리.pop(key, default)
두 번째 인자로 default 값을 지정하여 KeyError 방지 가능
a = { 'name' : 'kyle' 'gender' : 'male' } phone = a.pop('phone', '010-1234-1234') print(a) # {'name':'kyle', 'gender':'male'} print(phone) # 010-1234-1234
-
-
조회
-
딕셔너리[key]
a = { 'name' : 'kyle' 'gender' : 'male' } print(a['name']) # kyle
-
딕셔너리.get(key)
a = { 'name' : 'kyle' 'gender' : 'male' } print(a.get('name')) # kyle
-
딕셔너리.get(key, default)
a = { 'name' : 'kyle' 'gender' : 'male' } print(a.get('phone')) # None print(a.get('phone','없음')) # 없음 print(a['phone']) # Error 발생
-
3. 딕셔너리 메서드
1) .keys( )
딕셔너리의 key목록이 담긴 dict_keys 객체 반환
a = {
'name' : 'kyle'
'gender' : 'male'
}
print(a.keys())
# dict_keys(['name','gender'])
for key in a.keys():
print(key)
# name gender
for key in a:
print(key)
# name gender
2) .values( )
딕셔너리의 value목록이 담긴 dict_values 객체 반환
a = {
'name' : 'kyle'
'gender' : 'male'
}
print(a.values())
# dict_values(['kyle','male'])
for key in a.keys():
print(key)
# kyle male
3) .items( )
딕셔너리의 (key, value) 쌍 목록이 담긴 dict_items 객체 반환
a = {
'name' : 'kyle'
'gender' : 'male'
}
print(a.items())
# dict_items([('name','kyle'), ('gender':'male')])
for item in a.items():
print(item)
# ('name', 'kyle') ('gender', 'male')