A veces, mientras trabajamos con datos de Python, podemos tener un problema en el que necesitamos realizar el anidamiento de todos los diccionarios que tienen un solo anidamiento de claves, es decir, una sola clave y valor y se puede apuntar fácilmente a la clave externa directamente. Este tipo de problema es común en dominios que requieren optimización de datos. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_list = [{‘gfg’: {‘data’: 1}}, {‘is’: {‘data’: 5, ‘geeks’: 7}}] Salida: {‘is’: 5,
‘ gfg ‘: 1}Entrada : test_list = [{‘gfg’: {‘data’: ‘best’}}]
Salida : {‘gfg’: ‘best’}
Método n.º 1: Usar bucle +items()
La combinación de los métodos anteriores se puede usar para resolver este problema. En esto, iteramos por los valores en la lista, usando loop y extrayendo todos los elementos del diccionario usando items() y realizamos la creación de un nuevo diccionario usando el método de fuerza bruta.
# Python3 code to demonstrate working of # Unnest single Key Nested Dictionary List # Using loop + items() # initializing list test_list = [{'gfg' : {'data' : 1}}, {'is' : {'data' : 5}}, {'best' : {'data' : 4}}] # printing original list print("The original list is : " + str(test_list)) # initializing key data_key = 'data' # Unnest single Key Nested Dictionary List # Using loop + items() res = dict() for sub in test_list: for key, val in sub.items(): res[key] = sub[key][data_key] # printing result print("The constructed Dictionary list : " + str(res))
La lista original es: [{‘gfg’: {‘data’: 1}}, {‘is’: {‘data’: 5}}, {‘best’: {‘data’: 4}}] La
construida Lista de diccionarios: {‘gfg’: 1, ‘mejor’: 4, ‘es’: 5}
Método #2: Uso de la comprensión de listas
Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la solución con un enfoque similar pero de forma abreviada utilizando la comprensión de listas.
# Python3 code to demonstrate working of # Unnest single Key Nested Dictionary List # Using list comprehension # initializing list test_list = [{'gfg' : {'data' : 1}}, {'is' : {'data' : 5}}, {'best' : {'data' : 4}}] # printing original list print("The original list is : " + str(test_list)) # initializing key data_key = 'data' # Unnest single Key Nested Dictionary List # Using list comprehension res = {x : y[data_key] for idx in test_list for x, y in idx.items()} # printing result print("The constructed Dictionary list : " + str(res))
La lista original es: [{‘gfg’: {‘data’: 1}}, {‘is’: {‘data’: 5}}, {‘best’: {‘data’: 4}}] La
construida Lista de diccionarios: {‘gfg’: 1, ‘mejor’: 4, ‘es’: 5}
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