Y at-il un moyen facile de combiner deux dictionnaires de dictionnaires en Python? Voici ce que j'ai besoin:Combiner deux dictionnaires de dictionnaires (Python)
dict1 = {'A' : {'B' : 'C'}}
dict2 = {'A' : {'D' : 'E'}}
result = dict_union(dict1, dict2)
# => result = {'A' : {'B' : 'C', 'D' : 'E'}}
J'ai créé une fonction de force brute qu'il fait, mais je cherchais une solution plus compacte:
def dict_union(train, wagon):
for key, val in wagon.iteritems():
if not isinstance(val, dict):
train[key] = val
else:
subdict = train.setdefault(key, {})
dict_union(subdict, val)
Ce n'est pas une union 'dict'. –
Je ne comprends pas ce que vous voulez faire quand la structure des dicts ne correspond pas. Par exemple, si dict3 = {'A': 'F'}, alors en utilisant votre version ici, dict_union (dict3, dict2) lance un TypeError. Est-ce le comportement souhaité? – Cosmologicon
Relié (mais plus simple): http://stackoverflow.com/questions/1031199/adding-dictionaries-in-python – Gilles