범용적으로 가장 많이 사용! ( JSON 과 비슷 )
딕셔너리 자료형은 순서X, 키 중복X, 수정O, 삭제O
a = { 'name' : 'kim', 'phone' : '01029394123', 'birth' : '20199999' } # key 와 value로 이루어짐
b = { 0 : 'Hello Python' }
c = { 'arr' : [1,2,3,4]}
d = {
'name' : 'kim',
'city' : 'Seoul',
'Age' : 33,
'grade' : 'A',
'status' : True
}
print(type(a)) # <class 'dict'>
자주 쓰이는 형태는 아니지만
e = dict([
('name' , 'kim'), # 튜플이니까 : 를 , 로 바꿔줘야함
('city' , 'Seoul'),
])
dict()
함수 안에 리스트를 넣고 그 안에 원소로 key와 value를 갖는 튜플을 넣어주면 딕셔너리 선언이 가능하다.
또 다른 방법으로는
f = dict([
name = 'kim',
city = 'Seoul',
age = 33
])
위와 같은 방법이 있다. ( 이게 가장 편한듯 )
a = { 'name' : 'kim', 'phone' : '01029394123', 'birth' : '20199999' }
b = { 0 : 'Hello Python' }
print(a['name']) # 'kim'
print(a.get('name')) # 'kim'
print(b[0]) # 'Hello Python'
print(b.get(0)) # 'Hello Python'
[key name]
을 이용하여 값을 가져오는 방법과 get(key name)
의 차이점은
print(a['namename']) # key error
print(a.get('namename')) # none
[ ] 는 없는 key 값에 접근시 error를 발생 시키지만 get()
함수는 none 을 리턴한다. ( get()을 사용하는게 좀 더 안전 하다. )
a = { 'name' : 'kim' }
a['address'] = 'seoul'
print(a) # { 'name' : 'kim', 'address' : 'seoul'}
a['address'] = 'jeonju'
print(a) # { 'name' : 'kim', 'address' : 'jeonju' }
print(len(a)) # 2, 딕셔너리에서 len()는 key의 개수를 계산한다.
딕셔너리의 추가는 속성 값으로 접근하여 value를 지정해 주면 된다. 만약 기존에 있는 속성 값에 접근하면 그 속성의 값이 수정된다.
하지만 수정 할 때에는 update()
함수를 사용하자! ( 아래 참고 )
#dict_keys, dict_values, dict_items 는 반복문(__iter__) 사용 가능하다.
a = { 'name' : 'kim', 'address' : 'jeonju' }
print(a.keys()) # dict_keys(['name', 'address'])
print(list(a.keys())) # ['name', 'address']
print(a.values()) # dict_values(['kim','jeonju'])
print(list(a.values())) # ['kim','jeonju']
print(a.items()) # dict_items([('name','kim'), ('address','jeonju')])
print(list(a.items())) # [('name','kim'), ('address','jeonju')]
print(a.pop('name')) # 'kim'
print(a) # { 'address' : 'jeonju' } , pop은 원본을 수정한다.
b = { 0 : 1}
print(b.pop(0)) # 1
print(b) # {}
a = { 'name' : 'kim', 'address' : 'jeonju' } # 재선언
print(a.popitem()) # ('address','jeonju') , 무작위로 꺼내온다 ( 튜플 형태로 )
a = { 'name' : 'kim', 'address' : 'jeonju', 'birth' : '20191010' }
print('birth' in a) # True , a에 'birth'라는 key가 있는지 따짐
a.update(age='123') # 문법적으로 딕셔너리를 수정하는 함수
print(a) # { 'name' : 'kim', 'address' : 'jeonju', 'age' : '123' }
a.update(age='456')
print(a) # { 'name' : 'kim', 'address' : 'jeonju', 'age' : '456' }
dict.keys()
: Key 값들을 반환하는 함수 dict.values()
: Value 값들을 반환하는 함수 dict.items()
: Key와 Value 모두를 튜플 형태로 반환하는 함수dict.pop(key name)
: 딕셔너리에서 key name에 해당하는 value를 리턴하고 원본 딕셔너리를 수정한다.dict.popitem()
: 딕셔너리에서 무작위( 딕셔너리는 순서가 없기 때문에) 로 key, value 한 쌍을 꺼내온다. 원본 배열을 수정하고 만약 꺼내올 아이템이 없다면 예외가 발생한다.value in dict
: 딕셔너리에 value라는 key가 있으면 True 없으면 Falsedict.update(key=value)
: 딕셔너리에 값을 추가( 만약 key가 없으면 추가 )하거나 해당 key값을 수정한다.