from itertools import chain
from collections import defaultdict
dict1 = {'bookA': 1, 'bookB': 2, 'bookC': 3}
dict2 = {'bookC': 2, 'bookD': 4, 'bookE': 5}
dict3 = defaultdict(list)
for k, v in chain(dict1.items(), dict2.items()):
dict3[k].append(v)
for k, v in dict3.items():
print(k, v)
# ('bookA', [1])
# ('bookB', [2])
# ('bookC', [3, 2])
# ('bookD', [4])
# ('bookE', [5])
같은 값을 가진 딕셔너리. 최대값 만큼 출력, 최소값 만큼 출력
from itertools import chain
u_dict = {}
str1, str2 = {'aa': 2}, {'aa': 3}
for k, v in chain(str1.items(), str2.items()):
if k in u_dict:
u_dict[k] = max(u_dict[k], v)
else:
u_dict[k] = v
print(u_dict)
# {'aa': 3}
i = []
for s1 in str1:
if s1 in str2:
i += [s1 for _ in range(min(str1[s1], str2[s1]))]
# ['aa', 'aa']