Combina dois ou mais dicionários, criando uma lista de valores para cada chave.

1. Crie um novo collection.defaultdict com list como o valor padrão para cada chave e faça um loop sobre os dicts. 

2. Use dict.append() para mapear os valores do dicionário para as chaves. 

3. Use dict() para converter as collection.defaultdict em um dicionário regular.


 

from collections import defaultdict

 

def combinar_valores(*dicts):

  resultado = defaultdict(list)

  for d in dicts:

    for key in d:

      resultado[key].append(d[key])

  return dict(resultado)

 

d1 = {'a': 14, 'b': 'joao', 'c': 10}

d2 = {'a': 20, 'b': 27, 'd': 36}

 

print(combinar_valores(d1, d2))

# {'a': [14, 20], 'b': ['joao', 27], 'c': [10], 'd': [36]}