Python: eliminar el nivel superior del diccionario

A veces, mientras trabajamos con diccionarios de Python, podemos anidar diccionarios, donde cada clave es un diccionario de valores únicos. En esto necesitamos eliminar el nivel superior del diccionario. Esto puede tener aplicación en el preprocesamiento de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Método #1: Uso de values() la comprensión del diccionario +
La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la tarea de reconstrucción del diccionario usando la comprensión del diccionario y las listas anidadas se extraen usando valores().

# Python3 code to demonstrate working of 
# Remove Top level from Dictionary
# Using dictionary comprehension + values()
  
# initializing dictionary
test_dict = {'gfg' : {'data1' : [4, 5, 6, 7]},
             'is' : {'data2' : [1, 3, 8]},
             'best' : {'data3' : [9, 10, 13]}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Remove Top level from Dictionary
# Using dictionary comprehension + values()
res = dict(ele for sub in test_dict.values() for ele in sub.items())
      
# printing result 
print("The top level removed dictionary is : " + str(res)) 
Producción :

El diccionario original es: {‘is’: {‘data2’: [1, 3, 8]}, ‘gfg’: {‘data1’: [4, 5, 6, 7]}, ‘best’: {‘ data3’: [9, 10, 13]}}
El diccionario eliminado de nivel superior es: {‘data1’: [4, 5, 6, 7], ‘data2’: [1, 3, 8], ‘data3’: [9, 10, 13]}

Método n.º 2: usarChainMap() + dict()
la combinación de las funcionalidades anteriores también se puede usar para resolver este problema. En esto, empleamos ChainMap() para realizar el mapeo de valores anidados.

# Python3 code to demonstrate working of 
# Remove Top level from Dictionary
# Using ChainMap() + dict()
from collections import ChainMap
  
# initializing dictionary
test_dict = {'gfg' : {'data1' : [4, 5, 6, 7]},
             'is' : {'data2' : [1, 3, 8]},
             'best' : {'data3' : [9, 10, 13]}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Remove Top level from Dictionary
# Using ChainMap() + dict()
res = dict(ChainMap(*test_dict.values()))
      
# printing result 
print("The top level removed dictionary is : " + str(res)) 
Producción :

El diccionario original es: {‘is’: {‘data2’: [1, 3, 8]}, ‘gfg’: {‘data1’: [4, 5, 6, 7]}, ‘best’: {‘ data3’: [9, 10, 13]}}
El diccionario eliminado de nivel superior es: {‘data1’: [4, 5, 6, 7], ‘data2’: [1, 3, 8], ‘data3’: [9, 10, 13]}

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *