1)
Input
source = (('k1', 'val1'),
('k1', 'val2'),
('k2', 'val3'),
('k2', 'val4'),
('k2', 'val5'))
#setdefault 사용
for k,v in source:
new_dict2.setdefault(k, []).append(v)
#dict 사용
new_dict3 = {k : v for k, v in source}
Output
{'k1': ['val1', 'val2'], 'k2': ['val3', 'val4', 'val5']} #출력
{'k1': 'val2', 'k2': 'val5'}
setdefault는 "k는 디폴트로 사용하고 다음에 오는 애들은 리스트 형태로 붙여줘~" 정도의 주문인데, 아래는 source에 k1, k2/v1, v2와 같이 값이 여러 개일 경우, key가 중복될 때마다 값이 초기화된다.