A veces, mientras trabajamos con registros, podemos tener problemas en los que necesitamos realizar la tarea de conversión de múltiples diccionarios planos a un solo diccionario anidado. Esto puede tener aplicación en muchos dominios en los que los datos se utilizan de forma extensiva. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Uso de la dict()
tecla de acceso +
Esta es una de las formas en que se puede realizar esta tarea. En esto, construimos un diccionario vacío usando dict y asignamos un nuevo nivel al diccionario usando el acceso de clave bruta manual.
# Python3 code to demonstrate working of # Convert Flat dictionaries to Nested dictionary # Using key access + dict() # initializing dictionaries test_dict1 = {'gfg' : 1, 'best' : 2} test_dict2 = {'for' : 3, 'geeks' : 5} # printing original dictionaries print("The original dictionary 1 is : " + str(test_dict1)) print("The original dictionary 2 is : " + str(test_dict2)) # Convert Flat dictionaries to Nested dictionary # Using key access + dict() res = dict() res["level1"] = test_dict1 res['level2'] = test_dict2 # printing result print("The nested dictionary is : " + str(res))
El diccionario original 1 es: {‘gfg’: 1, ‘best’: 2}
El diccionario original 2 es: {‘geeks’: 5, ‘for’: 3}
El diccionario anidado es: {‘level2’: {‘ geeks’: 5, ‘for’: 3}, ‘level1’: {‘gfg’: 1, ‘best’: 2}}
Método #2: Usarzip()
Esta es otra forma en la que se puede realizar esta tarea. En esto vinculamos claves internas a claves externas usando zip().
# Python3 code to demonstrate working of # Convert Flat dictionaries to Nested dictionary # Using zip() # initializing dictionaries test_dict1 = {'gfg' : 1, 'best' : 2} test_dict2 = {'for' : 3, 'geeks' : 5} # printing original dictionaries print("The original dictionary 1 is : " + str(test_dict1)) print("The original dictionary 2 is : " + str(test_dict2)) # Convert Flat dictionaries to Nested dictionary # Using zip() key_dict = ['level1', 'level2'] dict_list = [test_dict1, test_dict2] res = dict(zip(key_dict, dict_list)) # printing result print("The nested dictionary is : " + str(res))
El diccionario original 1 es: {‘gfg’: 1, ‘best’: 2}
El diccionario original 2 es: {‘geeks’: 5, ‘for’: 3}
El diccionario anidado es: {‘level2’: {‘ geeks’: 5, ‘for’: 3}, ‘level1’: {‘gfg’: 1, ‘best’: 2}}
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA