Map 처럼 key, value 쌍으로 이루어진 것을 딕셔너리라고 부르는군요.

만드는 방법 : 변수명 = {Key1:Value1, Key2:Value2, Key3:Value3,,,,}
key로 value가져오기 : 변수명[‘key’]
key, value 추가하기 : 변수명[‘추가 할 key’] = 추가할 value
key, value 삭제하기 : del 변수명[‘제거 할 쌍의 key’]

>>> dic = {‘name’:’keesun’, ‘age’:26, ’email’:’keesun@email.com’}
>>> dic
{‘age’: 26, ‘name’: ‘keesun’, ’email’: ‘keesun@email.com’}
>>> print dic
{‘age’: 26, ‘name’: ‘keesun’, ’email’: ‘keesun@email.com’}
>>> dic[‘name’]
‘keesun’
>>> dic[‘age’]
26
>>> dic[‘age’] + 1
27
>>> dic[‘name’] + 1
Traceback (most recent call last):
  File “<stdin>”, line 1, in <module>
TypeError: cannot concatenate ‘str’ and ‘int’ objects
>>> dic
{‘age’: 26, ‘name’: ‘keesun’, ’email’: ‘keesun@email.com’}
>>> dic[‘city’] = ‘seoul’
>>> dic
{‘city’: ‘seoul’, ‘age’: 26, ‘name’: ‘keesun’, ’email’: ‘keesun@email.com’}
>>> del[‘name’]
  File “<stdin>”, line 1
SyntaxError: can’t delete literal
>>> del dic[‘name’]
>>> dic
{‘city’: ‘seoul’, ‘age’: 26, ’email’: ‘keesun@email.com’}

주의할 것은 절대로 중복되는 key를 사용하지 말 것. 만약에 중복되는 키를 사용하면 중복된 키를 가진 쌍들 중에 하나를 남기고 나머진 사라지는데 어떤 것이 사라질지 예측 불가능입니다.

key값은 immutable해야 합니다. 따라서 list를 쓸 수 없습니다.

>>> dic[[1,2,3]] = ‘number’
Traceback (most recent call last):
  File “<stdin>”, line 1, in <module>
TypeError: list objects are unhashable
>>> dic[(1,2,3)] = ‘number’
>>> dic
{‘city’: ‘daejun’, ‘age’: 26, (1, 2, 3): ‘number’, ’email’: ‘keesun@email.com’}

value는 mutable하기 때문에 수정이 가능합니다.

>>> dic
{‘city’: ‘seoul’, ‘age’: 26, ’email’: ‘keesun@email.com’}
>>> dic[‘city’] = ‘daejun’
>>> dic
{‘city’: ‘daejun’, ‘age’: 26, ’email’: ‘keesun@email.com’}

keys(), values(), items() 모두 리턴타입이 list 입니다.

이밖에 여러 메소드들은 이곳 제일 아래에서 참조 할 수 있습니다.