>>dict()
{}
>>d = dict(aaa = 1, bbb = 2, ccc = 3)
{'aaa' : 1, 'bbb' : 2, 'ccc' : 3}
>>d = {'a' : 1, 'b' : 2, 'c' : 3}
{'a' : 1, 'b' : 2, c :'3'}
dict 함수로 생성하면 매핑에 '=' 을 사용. 좌항은 자료형 구분X. 자동캐스팅됨.
{} 로 생성하면 매핑에 ':' 을 사용. 좌항도 int/string 구분.
>> print(d['b'])
2
value의 접근에는 dict이름[key] 를 사용한다.
인덱스는 지원하지 않는다.
>> d["d"] = 4
원소 추가는 새로운 key와 value을 할당하면 된다.
>> d["d"] = 5
원소 변경은 해당 key의 value를 재정의해주면 된다.
>> del d["d"]
원소의 삭제는 del 함수로 key 값을 제거한다.
>>d.keys()
dict_keys(['a', 'b', 'c', 'd])
keys 함수로 키값들만 추출할 수 있다.
dict_keys 라는 자료형으로 저장된다.
>>d.values()
dict_values([1, 2, 3, 5])
values 함수로 value값들만 추출할 수 있다.
dict_values 라는 자료형으로 저장된다.
>>d.items()
dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 5)])
items 함수는 key와 value 값 쌍을 투플로 묶어서 반환한다.
위의 함수들의 결과물은 주로 list 함수로 형변환하여 사용한다.
>> d1 = {"a":1, "b":2}
>> d2 = {"b":1, "d":2}
>> d1.update(d2)
{"a":1, "b":1, "d":2}
update 함수로 딕셔너리를 합치는데, 딕셔너리에서는 키 값의 중복이 없다.
따라서 중복되는 key의 value는 뒤 딕셔너리의 value로 변경된다.
>>d3 = {**d1, **d2}
{"a":1, "b":1, "d":2}
update는 d1의 결과를 변경시키므로.
병합결과로 새로운 dict 를 만들고싶으면 **를 사용한다.
>> for key, value in d1.items():
print(key, value)
a 1
b 2
items()는 (key, value) 투플값을 갖고 있으므로 for문을 돌면서 확인하면된다.