Dada una lista y un diccionario, aplanar el diccionario con claves y valores en la posición del elemento disponible de la clave en la lista.
Entrada : test_list = [“Gfg”, “is”, “Best”, “For”, “Geeks”], subs_dict = {“Gfg”: 7}
Salida : [‘Gfg’, 7, ‘is’, ‘Best ‘, ‘For’, ‘Geeks’]
Explicación : «Gfg» se reemplaza, seguido de su valor en el diccionario.Entrada : test_list = [“Gfg”, “is”, “Best”, “For”, “Geeks”], subs_dict = {“gfg”: 7, “best”: 8}
Salida : [‘Gfg’, ‘is ‘, ‘Best’, ‘For’, ‘Geeks’]
Explicación : No hay reemplazo. Sin valores coincidentes.
Método n.º 1: usar la comprensión de listas + get()
La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, agregamos toda la clave, si está presente, verificando usando get(), junto con los valores en la lista.
Python3
# Python3 code to demonstrate working of # Flatten Dictionary with List # Using get() + list comprehension # initializing list test_list = ["Gfg", "is", "Best", "For", "Geeks"] # printing original list print("The original list : " + str(test_list)) # initializing subs. Dictionary subs_dict = {"Gfg" : 7, "Geeks" : 8} # get() to perform presence checks and assign value temp = object() res = [ele for sub in ((ele, subs_dict.get(ele, temp)) for ele in test_list) for ele in sub if ele != temp] # printing result print("The list after substitution : " + str(res))
The original list : ['Gfg', 'is', 'Best', 'For', 'Geeks'] The list after substitution : ['Gfg', 7, 'is', 'Best', 'For', 'Geeks', 8]
Método #2: Usar chain.from_iterable() + comprensión de lista
Esta es otra forma más en la que se puede realizar esta tarea. En esto, formamos una lista de pares de valores clave y agregamos si está presente y, si no, retenemos el elemento. A continuación, el aplanamiento de las listas de valores clave se realiza mediante chain.from_iterable().
Python3
# Python3 code to demonstrate working of # Flatten Dictionary with List # Using chain.from_iterable() + list comprehension from itertools import chain # initializing list test_list = ["Gfg", "is", "Best", "For", "Geeks"] # printing original list print("The original list : " + str(test_list)) # initializing subs. Dictionary subs_dict = {"Gfg" : 7, "Geeks" : 8} temp = ([ele, subs_dict[ele]] if ele in subs_dict else [ele] for ele in test_list) # chain.from_iterable() for flattening res = list(chain.from_iterable(temp)) # printing result print("The list after substitution : " + str(res))
The original list : ['Gfg', 'is', 'Best', 'For', 'Geeks'] The list after substitution : ['Gfg', 7, 'is', 'Best', 'For', 'Geeks', 8]
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