Python: extrae valores de clave particular en valores anidados

Dado un diccionario con diccionarios anidados como valores, extraiga todos los valores con una clave particular.

Entrada : test_dict = {‘Gfg’: {“a”: 7, “b”: 9, “c”: 12}, ‘is’: {“a”: 15, “b”: 19, “c”: 20}, ‘mejor’: {“a”: 5, “b”: 10, “c”: 2}}, temp = “b”
Salida : [9, 10, 19]
Explicación : Todos los valores de “b” se extrae la clave.

Entrada : test_dict = {‘Gfg’: {“a”: 7, “b”: 9, “c”: 12}, ‘is’: {“a”: 15, “b”: 19, “c”: 20}, ‘mejor’ :{“a” : 5, “b” : 10, “c” : 2}}, temp = “a”
Salida : [7, 15, 5]
Explicación : Todos los valores de “a” se extrae la clave.

Método n. ° 1: usar lista de comprensión + elements()

Esta es una de las formas en que se puede realizar esta tarea. En esto, usamos la comprensión de listas para realizar la tarea de extraer una clave particular y los elements() se usan para obtener todos los elements().

Python3

# Python3 code to demonstrate working of 
# Extract values of Particular Key in Nested Values
# Using list comprehension
  
# initializing dictionary
test_dict = {'Gfg' : {"a" : 7, "b" : 9, "c" : 12},
             'is' : {"a" : 15, "b" : 19, "c" : 20}, 
             'best' :{"a" : 5, "b" : 10, "c" : 2}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing key
temp = "c"
  
# using item() to extract key value pair as whole
res = [val[temp] for key, val in test_dict.items() if temp in val]
  
# printing result 
print("The extracted values : " + str(res)) 
Producción

The original dictionary is : {'Gfg': {'a': 7, 'b': 9, 'c': 12}, 'is': {'a': 15, 'b': 19, 'c': 20}, 'best': {'a': 5, 'b': 10, 'c': 2}}
The extracted values : [12, 20, 2]

Método n.º 2: Usar comprensión de lista + valores() + teclas() 

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, usamos valores() y claves() para obtener valores y claves por separado en lugar de extraerlos de una vez usando elements().

Python3

# Python3 code to demonstrate working of 
# Extract values of Particular Key in Nested Values
# Using list comprehension + values() + keys() 
  
# initializing dictionary
test_dict = {'Gfg' : {"a" : 7, "b" : 9, "c" : 12},
             'is' : {"a" : 15, "b" : 19, "c" : 20}, 
             'best' :{"a" : 5, "b" : 10, "c" : 2}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing key
temp = "c"
  
# using keys() and values() to extract values
res = [sub[temp] for sub in test_dict.values() if temp in sub.keys()]
  
# printing result 
print("The extracted values : " + str(res)) 
Producción

The original dictionary is : {'Gfg': {'a': 7, 'b': 9, 'c': 12}, 'is': {'a': 15, 'b': 19, 'c': 20}, 'best': {'a': 5, 'b': 10, 'c': 2}}
The extracted values : [12, 20, 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

Deja una respuesta

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