Python – Diccionario de columnas clave de Matrix

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

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

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

Deja una respuesta

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