Python: asignación de valores clave para enumerar elementos del diccionario de lista de valores

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))
Producción

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))
Producción

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

Deja una respuesta

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