대응 관계를 나타내는 자료형입니다. 연관 배열(Associative Array)라고 하는데, 다른 언어에서는 Hash 등이 이에 해당되는 자료형입니다.
Key와 Value로 이루어져있는 자료형입니다. 리스트와 튜플과는 크게 다른점은 Index를 통해서 접근하는 것이 아닌 Key를 통해서 접근하는 자료형입니다.
{Key1 : value, Key2 : value, Key3:value, ......}
위를 보면 Key와 Value로 이루어져있는것을 볼 수 있습니다.
dic = {'name':'kai', 'student no': 234, 'major':'computer engineering'}
다른 특징으로는 dictionary 안에 리스트, 튜플, SET도 추가할수 있습니다.
dic['key_val'] = value 형식으로 추가하면 됩니다.
dic = {"name" : "Kai"}
dic['age'] = 23
result : {'name' : 'kai', 'age' : 23}
키값을 이용해서 요소를 삭제해야 합니다.
del dic['age']
result : {'name':'kai'}
dic[key_value]로 불러오면 됩니다.
dic['name']
result : 'kai'
중복 값을 넣으면 마지막에 넣은 값으로 대체가 됩니다. keyvalue는 중복이 되지 않습니다.
dic.keys()를 통해서 뽑을수 있습니다. dict_keys 객체로 값을 리턴하게 해줍니다.(파이썬 버전 3이후 부터 리스트로 값이 리턴이 안됩니다.)
>>> dic.keys()
dict_keys(['set', 'list', 'tuple'])
for 문으로 값 뽑아내기
>>> for i in dic.keys():
print(i)
set
list
tuple
리스트로 뽑아내기
>>> list(dic.keys())
['set', 'list', 'tuple']
dict_values객체 형태로 뽑아내기
>>> dic.values()
dict_values([{1, 2, 3, 4}, [1, 2, 3, 4], ('t', 'u', 'p', 'l', 'e')])
for문으로 값 뽑아내기
>>> for i in dic.values():
print(i)
{1, 2, 3, 4}
[1, 2, 3, 4]
('t', 'u', 'p', 'l', 'e')
list로 뽑아내기
>>> list(dic.values())
[{1, 2, 3, 4}, [1, 2, 3, 4], ('t', 'u', 'p', 'l', 'e')]
위의 value와 key를 뽑아 내는것과 같지만 쌍으로 뽑아낼수 있습니다.
dic.items() 자료형은 dict_items입니다.
>>> dic.items()
dict_items([('set', {1, 2, 3, 4}), ('list', [1, 2, 3, 4]), ('tuple', ('t', 'u', 'p', 'l', 'e'))])
>>> dic2list = list(dic.items())
>>> dic2list
[('set', {1, 2, 3, 4}), ('list', [1, 2, 3, 4]), ('tuple', ('t', 'u', 'p', 'l', 'e'))]
dic.clear()
result : {}
value를 가지고 오는 다른 방법입니다. dic['key_value']와 다른점은 만약에 해당 키가 없으면 error를 내는게 아니라 None 자료형이나 Default를 리턴하게 됩니다.
>>> dic.get('set')
{1, 2, 3, 4}
>>> dic.get('sgt','what?')
'what?'
>>> 'name' in dic
False
>>> 'list' in dic
True