딕셔너리
단어 그대로 해석하면 사전이라는 뜻이다.
리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.
Key와 Value의 쌍 여러 개가 { }로 둘러싸여 있다. 각각의 요소는 Key : Value 형태로 이루어져 있고 쉼표(,)로 구분되어 있다.
※ Key에는 변하지 않는 값을 사용하고, Value에는 변하는 값과 변하지 않는 값 모두 사용할 수 있다.
다음 딕셔너리 예를 살펴보자.
dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
my_dic = dict()
print(type(my_dic)) # <class 'dict'>
위에서 Key는 각각 'name', 'phone', 'birth'이고, 각각의 Key에 해당하는 Value는 'pey', '0119993323', '1118'이 된다.
딕셔너리 dic의 정보
key | value |
name | pey |
phone | 01199993323 |
birth | 1118 |
a = {1: 'hi'}
a = { 'a': [1,2,3]}
데이터 조회하기
딕셔너리는 인덱스로 추출 불가! 따라서 순서가 없는 자료형이다 따라서 sort나 reverse 불가
1) get(key) : 반환형이 있으므로 존재하지 않는 키 None 반환 a.get('name')
2) [key] : 반환형이 없으므로 KeyError!
pro_dic = {
'name':'DRAM',
'capa':'32g',
'maker':'SK',
'price':320000,
}
print(pro_dic.get('ssn')) # None
print(pro_dic['ssn']) # KeyError: 'ssn'
print(pro_dic.get('name')) # 키 값으로 Value 추출 # DRAM
해당 Key가 딕셔너리 안에 있는지 조사하기(in)
a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
'name' in a # True
'email' in a # False
print(not 'price' in pro_dic) # False
print('ssn' not in pro_dic) # True
값 추가하기
키값은 숫자, 문자 다 가능
dict['key'] = value
new_dict = {'key':value}
dict.update(new_dict)
# 하나의 값을 추가
pro_dic[1] = 11
print(pro_dic) # {'name': 'DRAM', 'capa': '32g', 'maker': 'SK', 'price': 320000, 1: 11}
# 여러 개의 값을 한 번에 추가하기 update() 사용
add_info = {'loc':'이천', 'pop':33}
pro_dic.update(add_info)
print(pro_dic) # {'name': 'DRAM', 'capa': '32g', 'maker': 'SK', 'price': 320000, 1: 11, 'loc': '이천', 'pop': 33}
데이터 수정하기
pro_dic['price'] = 230000 # 원래 있는 키라면 수정되고, 없는 키라면 추가됨
데이터 삭제하기
del a[key] : Key에 해당하는 {key : value} 쌍이 삭제된다.
pop()
clear() 전부 삭제
remove() 지원 안 됨
del pro_dic[3]
pro_dic # KeyError: 3
result = pro_dic.pop('pop') # KeyError: 'pop' 해당 키 없을 경우 에러!
딕셔너리 함수 사용하기
- keys() 모든 키 값
- values() 모든 value 값
- items() 모든 키와 value 쌍
Key 리스트 만들기(keys)
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
a.keys() # dict_keys(['name', 'phone', 'birth'])
# a.keys()는 딕셔너리 a의 Key만을 모아서 dict_keys 객체를 돌려준다.
for k in a.keys():
print(k)
# name
# phone
# birth
a.keys()는 딕셔너리 a의 Key만을 모아서 dict_keys 객체를 돌려준다.
Value 리스트 만들기(values)
a.values() # dict_values(['pey', '0119993323', '1118'])
Key를 얻는 것과 마찬가지 방법으로 Value만 얻고 싶다면 values 함수를 사용하면 된다. values 함수를 호출하면 dict_values 객체를 돌려준다.
Key, Value 쌍 얻기(items)
a.items() # dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
Key: Value 쌍 모두 지우기(clear)
a.clear()
a # {}
Key로 Value얻기(get)
a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
a.get('name') # 'pey'
a.get('phone') # '0119993323'
a['nokey']는 Key 오류를 발생시키고 a.get('nokey')는 None을 돌려준다는 차이가 있다.
'Python > Python 기초' 카테고리의 다른 글
[Python] 함수 (0) | 2022.03.12 |
---|---|
[Python] 집합 자료형 (0) | 2022.03.12 |
[Python] 튜플 자료형 (0) | 2022.03.12 |
[Python] 리스트 자료형 (0) | 2022.03.12 |
[Python] 변수와 데이터 타입 / 객체 (0) | 2022.03.12 |
댓글