Fusion approfondie de dictionnaires de dictionnaires en Python
Lorsque vous travaillez avec des structures de données complexes, il devient souvent nécessaire de fusionner plusieurs dictionnaires pour créer un ensemble unifié. représentation. Un défi particulier se pose lorsque les dictionnaires contiennent des structures imbriquées de dictionnaires, appelées « fusion profonde ».
Pour relever ce défi, nous pouvons tirer parti d'une approche récursive en Python. La fonction suivante fusionne efficacement les dictionnaires tout en gérant les conflits avec élégance :
def merge(a: dict, b: dict, path=[]): for key in b: if key in a: if isinstance(a[key], dict) and isinstance(b[key], dict): merge(a[key], b[key], path + [str(key)]) elif a[key] != b[key]: raise Exception('Conflict at ' + '.'.join(path + [str(key)])) else: a[key] = b[key] return a
En cas de valeurs conflictuelles, la fonction déclenchera une exception.
Pour illustrer l'utilisation, considérons l'exemple suivant :
dict1 = {1:{'a':{'A'}}, 2:{'b':{'B'}}} dict2 = {2:{'c':{'C'}}, 3:{'d':{'D'}}}
En utilisant merge(dict1, dict2), nous pouvons obtenir le résultat souhaité résultat :
{1:{'a':{'A'}}, 2:{'b':{'B'},'c':{'C'}}, 3:{'d':{'D'}}}
Cette approche garantit que l'imbrication dans les dictionnaires est gérée efficacement, permettant la fusion en profondeur de structures de données complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!