딕셔너리는 여러 개의 값을 나타낼 수 있는 자료형으로 키를 기반으로 값을 저장한다.
변수 = {
키 : 값,
키 : 값,
...
키 : 값,
}
>>> dict_a = {
"name" : "정민",
"age" : 27,
}
>>> dict_a
{'name': '정민', 'age': 27}
>>> dict_a["name"]
'정민'
>>> dict_a["age"]
27
딕셔너리를 선언할 때에는 중괄호{ }를 사용하지만 딕셔너리 요소에 접근할 때는 리스트처럼 딕셔너리 뒤에 리스트처럼 대괄호[ ]를 입력한다.
>>> dict_a["hobby"] = "reading" #"hobby"키 추가하기
>>> dict_a
{'name': '정민', 'age': 27, 'hobby': 'reading'}
키-값 쌍추가, 키만 지정할 경우 값에 None을 저장한다.
딕셔너리.setdefault(키, 값)
>>> dict_a.setdefault("birth", 940214) #"birth"라는 키와 값 추가
940214
>>> dict_a
{'name': '정민', 'hobby': 'reading', 'birth': 940214}
키-값 쌍 추가만 가능하다. 이미 들어있는 키의 값은 수정할 수 없다.
키-값 쌍 추가, 값 수정 가능하다.(단, 키는 문자열이여야 한다. 만약 키가 숫자일 경우에는 update(딕셔너리)처럼 딕셔너리를 넣어서 값을 수정할 수 있다.)
딕셔너리.update(키 = 값) [키가 문자열일 경우]
딕셔너리.update({키 : "값"}) [키가 숫자일 경우]
>>> dict_a.update(age = 27) #"age"라는 키 추가
>>> dict_a
{'name': '정민', 'hobby': 'reading', 'birth': 940214, 'age': 27}
>>> dict_a.update(age = 26) #"age"키의 값 수정
>>> dict_a
{'name': '정민', 'hobby': 'reading', 'birth': 940214, 'age': 26}
update는 키-값 쌍 여러개를 추가, 수정도 가능하다.
>>> dict_a.update(age = 26, hobby = "watching movie")
>>> dict_a
{'name': '정민', 'hobby': 'watching movie', 'birth': 940214, 'age': 26}
딕셔너리[기존 키] = 변경할 새로운 값
>>> dict_a["age"] = 26 #값을 만나이로 변경
>>> dict_a
{'name': '정민', 'age': 26, 'hobby': 'reading'}
>>> del dict_a["age"] #"age"키 삭제
>>> dict_a
{'name': '정민', 'hobby': 'reading'}
>>> dict_a
{'name': '정민', 'hobby': 'watching movie', 'birth': 940214, 'age': 26}
>>> dict_a.pop("age") #"age"라는 키와 값 삭제
26
>>> dict_a
{'name': '정민', 'hobby': 'watching movie', 'birth': 940214}
딕셔너리.poptime()
딕셔너리.clear()
딕셔너리에 존재하지 않는 키에 접근하면 KeyError가 발생한다. 그래서 존재하는 키인지 아닌지 확인할 수 있는 방법이 필요하다.
>>> dict_a["adress"] #딕셔너리에 없는 키를 입력할 경우
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
dict_a["adress"]
KeyError: 'adress'
딕셔너리에 없는 키에서 값을 가져오려고 하면 위와같이 에러가 발생한다.
키 in 딕셔너리
>>> "age" in dict_a
False
>>> "hobby" in dict_a
True
딕셔너리에 특정 키가 있으면 True, 없으면 False가 출력된다.
딕셔너리에서 특정 키의 값을 가져오거나 저장한다.
딕셔너리.get(키)
딕셔너리.get(키, 기본 값) [키가 없을 경우 기본값을 반환한다.]
>>> dict_a.get("name")
'정민'
>>> dict_a.get("age")
>>>
>>> dict_a.get("age", 26) #"age"라는 키가 없기때문에 기본값을 반환함
26
>>> dict_a
{'name': '정민', 'hobby': 'watching movie', 'birth': 940214}
.items() : 키-깂 모두 가져옴
.keys() : 키를 모두 가져옴
. values() : 값을 모두 가져옴
>>> dict_a.items()
dict_items([('name', '정민'), ('hobby', 'watching movie'), ('birth', 940214), ('age', 27), ('adress', 'seoul')])
>>> dict_a.keys()
dict_keys(['name', 'hobby', 'birth', 'age', 'adress'])
>>> dict_a.values()
dict_values(['정민', 'watching movie', 940214, 27, 'seoul'])