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))
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))
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