Python: claves asociadas con la lista de valores en el diccionario

A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos encontrar la clave de un valor particular en la lista de valores. Este problema es bastante común y puede tener aplicación en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.

Método #1: Usar loop +items()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, extraemos todos los elementos del diccionario usando items() y loop se usa para compilar el resto de la lógica.

# Python3 code to demonstrate working of 
# Value's Key association
# Using loop + items()
  
# initializing dictionary
test_dict = {'gfg' : [4, 5], 'is' : [8], 'best' : [10, 12]}
  
# printing original dictionary
print("The original dictionary : " + str(test_dict))
  
# initializing value list 
val_list = [5, 10]
  
# Value's Key association
# Using loop + items()
temp = {}
for key, vals in test_dict.items():
    for val in vals:
        temp[val] = key
res = [temp[ele] for ele in val_list]
  
# printing result 
print("The keys mapped to " + str(val_list) + " are : " + str(res)) 
Producción:

The original dictionary : {'gfg': [4, 5], 'best': [10, 12], 'is': [8]}
The keys mapped to [5, 10] are : ['gfg', 'best']

Método #2: Uso de la comprensión de listas +any()
Esta es otra forma más en la que se puede realizar esta tarea. Ofrece atajos que se pueden utilizar para resolver este problema. En esto, usamos any() para calcular si la clave contiene alguno de los valores en la lista de valores.

# Python3 code to demonstrate working of 
# Value's Key association
# Using list comprehension + any()
  
# initializing dictionary
test_dict = {'gfg' : [4, 5], 'is' : [8], 'best' : [10, 12]}
  
# printing original dictionary
print("The original dictionary : " + str(test_dict))
  
# initializing value list 
val_list = [5, 10]
  
# Value's Key association
# Using list comprehension + any()
res = [key for key, val in test_dict.items() if any(y in val for y in val_list)]
  
# printing result 
print("The keys mapped to " + str(val_list) + " are : " + str(res)) 
Producción:

The original dictionary : {'gfg': [4, 5], 'is': [8], 'best': [10, 12]}
The keys mapped to [5, 10] are : ['gfg', 'best']

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 *