A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos extraer todas las claves de los diccionarios anidados y mostrarlos en orden. Este tipo de aplicación puede darse en dominios en los que trabajamos con datos. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Usar yield + isinstance() + loop
La combinación de las funciones anteriores se puede usar para realizar esta tarea. En este, realizamos la tarea de detección de claves usando isinstance(). La palabra clave yield se utiliza para agregar resultados intermedios.
# Python3 code to demonstrate working of # Sorted Nested Keys in Dictionary # Using yield + isinstance() + loop def hlper_fnc(test_dict): for key, val in test_dict.items(): yield key if isinstance(val, dict): yield from val # initializing dictionary test_dict = {'gfg': 43, 'is': {'best' : 14, 'for' : 35, 'geeks' : 42}, 'and' : {'CS' : 29}} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # Sorted Nested Keys in Dictionary # Using yield + isinstance() + loop res = sorted(hlper_fnc(test_dict)) # printing result print("The sorted nested keys : " + str(res))
El diccionario original es: {‘and’: {‘CS’: 29}, ‘gfg’: 43, ‘is’: {‘for’: 35, ‘best’: 14, ‘geeks’: 42}
} claves anidadas: [‘CS’, ‘y’, ‘mejor’, ‘para’, ‘geeks’, ‘gfg’, ‘es’]
Método #2: Usarsorted() + list comprehension + isinstance()
la combinación de las funciones anteriores ofrece una solución abreviada a este problema. En esto, la clasificación se realiza mediante sorted(). El isinstance() se usa para detectar claves.
# Python3 code to demonstrate working of # Sorted Nested Keys in Dictionary # Using sorted() + list comprehension + isinstance() # initializing dictionary test_dict = {'gfg': 43, 'is': {'best' : 14, 'for' : 35, 'geeks' : 42}, 'and' : {'CS' : 29}} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # Sorted Nested Keys in Dictionary # Using sorted() + list comprehension + isinstance() res = sorted([key for val in test_dict.values() if isinstance(val, dict) for key in val] + list(test_dict)) # printing result print("The sorted nested keys : " + str(res))
El diccionario original es: {‘and’: {‘CS’: 29}, ‘gfg’: 43, ‘is’: {‘for’: 35, ‘best’: 14, ‘geeks’: 42}
} claves anidadas: [‘CS’, ‘y’, ‘mejor’, ‘para’, ‘geeks’, ‘gfg’, ‘es’]
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