딕셔너리는 키와 값의 한 쌍으로 설정이 되는 것이 가장 큰 특징이다.
중괄호{} 로 구분한다.
{"key":"value"} 한 쌍을 이룬다.
>>> a = {}
>>> type(a)
<class 'dict'>
>>> a = dict()
>>> type(a)
<class 'dict'>
키는 아무거나 key가 될 수 있다.
>>> a = {"name" : "홍길동", "age":30}
>>> a
{'name': '홍길동', 'age': 30}
key = name, age
value = 홍길동, 30
key는 절대 중복이 될 수 없으며 변하지 않는 값을 사용하는 것이 좋다.
>>> a["name"] = "가가멜"
>>> a
{'name': '가가멜', 'age': 30}
key
인 name
을 가가멜
로 바꿨더니 홍길동
은 사라지고 가가멜
로 바뀌었다.
중복되지 않는다는 것을 확인할 수 있다.
삭제는 리스트와 마찬가지로 del
을 사용해서 삭제할 수 있다.
>>> del a["name"]
>>> a
{'age': 30}
pop
도 사용 가능하다.
>>> a["name"] = "홍길동"
>>> a
{'age': 30, 'name': '홍길동'}
>>> a.pop("name")
'홍길동'
>>> a
{'age': 30}
다시 name
에 홍길동
을 추가시켰다.
리스트와 마찬가지로 pop
을 사용하니 키에 해당하는 값이 출력되었고, 그 값은 기존의 딕셔너리에서 삭제되어있음을 확인할 수 있다.
>>> a = {"name" : "홍길동"}
>>> b = {"age":30}
>>> c = {"country":"한국"}
>>> a
{'name': '홍길동'}
>>> b
{'age': 30}
>>> c
{'country': '한국'}
>>> a.update(b)
>>> a
{'name': '홍길동', 'age': 30}
>>> a.update(c)
>>> a
{'name': '홍길동', 'age': 30, 'country': '한국'}
>>> a.keys()
dict_keys(['name', 'age', 'country'])
>>> a.values()
dict_values(['홍길동', 30, '한국'])
>>> a.items()
dict_items([('name', '홍길동'), ('age', 30), ('country', '한국')])
직접 호출하는 경우 포함되어 있지 않은 요소를 출력하려하는 경우 에러가 발생한다.
>>> a["name"]
'홍길동'
>>> a["이름"]
Traceback (most recent call last):
File "<pyshell#70>", line 1, in <module>
a["이름"]
KeyError: '이름'
get을 사용하는 경우 포함되어 있지 않은 요소를 출력하려 해도 에러가 발생하지 않고 None
을 발생시킨다.
>>> a.get("이름")
>>> print(a.get("이름"))
None
특징이 확연히 드러나므로 필요에 따라 쓰이지 않을까 싶다.
리스트에서 원하는 값을 찾을 때 in
을 사용했다. 딕셔너리도 똑같다.
>>> "name" in a
True
>>> "nnnnnn" in a
False