Dada una array y una lista de claves, asigne los valores de cada columna con una clave de lista personalizada.
Entrada : test_list1 = [[4, 6], [8, 6]], test_list2 = [“Gfg”, “Best”]
Salida : {‘Gfg’: [4, 8], ‘Best’: [6, 6 ]}
Explicación : columna sabia, asignación de valores clave.
Entrada : test_list1 = [[4], [6]], test_list2 = [“Gfg”]
Salida : {‘Gfg’: [4, 6]}
Explicación : Columna, asignación de valores clave, lista de un solo elemento.
Método #1: Uso de comprensión de lista + comprensión de diccionario
La combinación de la funcionalidad anterior se puede utilizar para resolver este problema. En esto, realizamos la tarea de extraer valores de columna usando la comprensión de lista y luego la comprensión de diccionario se usa para formar un diccionario con claves de lista.
Python3
# Python3 code to demonstrate working of # Key Columns Dictionary from Matrix # Using list comprehension + dictionary comprehension # initializing lists test_list1 = [[4, 6, 8], [8, 4, 2], [8, 6, 3]] test_list2 = ["Gfg", "is", "Best"] # printing original lists print("The original list 1 : " + str(test_list1)) print("The original list 2 : " + str(test_list2)) # using enumerate to get column numbers # dictionary comprehension to compile result res = {key: [sub[idx] for sub in test_list1] for idx, key in enumerate(test_list2)} # printing result print("The paired dictionary : " + str(res))
The original list 1 : [[4, 6, 8], [8, 4, 2], [8, 6, 3]] The original list 2 : ['Gfg', 'is', 'Best'] The paired dictionary : {'Gfg': [4, 8, 8], 'is': [6, 4, 6], 'Best': [8, 2, 3]}
Método #2: Usando zip() + dict()
Esta es otra forma más en la que se puede realizar esta tarea. En esto, unimos el par clave-valor usando zip() y dict() se usa para convertir el resultado en el diccionario. La diferencia es que genera tuplas en lugar de listas como valores asignados.
Python3
# Python3 code to demonstrate working of # Key Columns Dictionary from Matrix # Using zip() + dict() # initializing lists test_list1 = [[4, 6, 8], [8, 4, 2], [8, 6, 3]] test_list2 = ["Gfg", "is", "Best"] # printing original lists print("The original list 1 : " + str(test_list1)) print("The original list 2 : " + str(test_list2)) # zip() used to map keys with values and return tuples # as result # * operator used to perform unpacking res = dict(zip(test_list2, zip(*test_list1))) # printing result print("The paired dictionary : " + str(res))
The original list 1 : [[4, 6, 8], [8, 4, 2], [8, 6, 3]] The original list 2 : ['Gfg', 'is', 'Best'] The paired dictionary : {'Gfg': (4, 8, 8), 'is': (6, 4, 6), 'Best': (8, 2, 3)}
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