Dada la Lista de elementos, asígnelos con claves de valor coincidente de la lista de valores.
Entrada : test_list = [4, 6, 3, 5, 3], test_dict = {«Gfg»: [5, 3, 6], «es»: [8, 4]}
Salida : [‘es’, ‘Gfg ‘, ‘Gfg’, ‘Gfg’, ‘Gfg’]
Explicación : 4 está presente en la tecla «es», por lo tanto, se asigna en la nueva lista.Entrada : test_list = [6, 3, 5, 3], test_dict = {“Gfg”: [5, 3, 6], “is”: [18, 14]}
Salida : [‘Gfg’, ‘Gfg’, ‘Gfg’, ‘Gfg’]
Explicación : Todos los elementos presentes en la tecla «Gfg».
Método #1: Usar la comprensión de listas
Esta es una de las formas en que se puede realizar esta tarea. En esto, extraemos cada elemento de la lista de valores del diccionario para verificar la ocurrencia del valor de la lista, si coincide, asignamos el valor de esa clave a ese índice.
Python3
# Python3 code to demonstrate working of # Assigning Key values to list elements from Value list Dictionary # Using list comprehension # initializing list test_list = [4, 6, 3, 10, 5, 3] # printing original list print("The original list : " + str(test_list)) # initializing dictionary test_dict = {"Gfg" : [5, 3, 6], "is" : [8, 4], "Best" : [10, 11]} # nested loop inside list comprehension to check each key res = [key for ele in test_list for key, val in test_dict.items() if ele in val] # printing result print("The filtered list : " + str(res))
The original list : [4, 6, 3, 10, 5, 3] The filtered list : ['is', 'Gfg', 'Gfg', 'Best', 'Gfg', 'Gfg']
Método #2: Uso de comprensión de diccionario + comprensión de lista
Esta es otra forma más en la que se puede realizar esta tarea. En esto, creamos un diccionario inverso y asignamos cada valor de lista con su clave, publicamos que cada clave está asignada con elementos de lista de clave de argumento para que coincida con el valor de clave.
Python3
# Python3 code to demonstrate working of # Assigning Key values to list elements from Value list Dictionary # Using dictionary comprehension + list comprehension # initializing list test_list = [4, 6, 3, 10, 5, 3] # printing original list print("The original list : " + str(test_list)) # initializing dictionary test_dict = {"Gfg" : [5, 3, 6], "is" : [8, 4], "Best" : [10, 11]} # creating inverse dictionary of elements temp = {j : i for i, k in test_dict.items() for j in k} # creating end result by mapping elements res = [temp.get(key) for key in test_list] # printing result print("The filtered list : " + str(res))
The original list : [4, 6, 3, 10, 5, 3] The filtered list : ['is', 'Gfg', 'Gfg', 'Best', 'Gfg', 'Gfg']
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