Programa de Python para convertir array en lista de valores de diccionario

Dado Matrix, la tarea es escribir un programa Python para mapear los valores de cada columna como claves personalizadas de otra lista.

Entrada: test_list = [[4, 5, 6], [1, 3, 5], [3, 8, 1], [10, 3, 5]], map_list = [4, 5, 6]

Salida: {4: [4, 1, 3, 10], 5: [5, 3, 8, 3], 6: [6, 5, 1, 5]}

Explicación: 4 se asigna con todo el índice 0 de listas, 4, 1, 3, 10.

Entrada: lista_prueba = [[4, 5, 6], [1, 3, 5], [3, 8, 1]], lista_mapa = [4, 5, 6]

Salida: {4: [4, 1, 3], 5: [5, 3, 8], 6: [6, 5, 1]}

Explicación: 4 se asigna con todo el índice 0 de listas, 4, 1, 3.

Método 1: Usando la comprensión del diccionario + zip()

En esto, el mapeo de columnas con elementos de índice de lista personalizados se realiza mediante zip(), la comprensión del diccionario se realiza para asignar claves extraídas a los valores de mapeo.

Python3

# Python3 code to demonstrate working of
# Convert Matrix to Dictionary Value List
# Using dictionary comprehension + zip()
from collections import defaultdict
  
# initializing list
test_list = [[4, 5, 6], [1, 3, 5], [3, 8, 1], [10, 3, 5]]
               
# printing original list
print("The original list is : " + str(test_list))
  
# initializing map list 
map_list = [4, 5, 6]
  
# mapping column using zip(), dictionary comprehension for key
# converts to list of dictionary
temp = [{key : val for key, 
         val in zip(map_list, idx)} for idx in test_list]
  
# convert to dictionary value list 
res = defaultdict(list) 
{res[key].append(sub[key]) for sub in temp for key in sub}
  
# printing result
print("Converted Dictionary : " + str(dict(res)))

Producción:

La lista original es: [[4, 5, 6], [1, 3, 5], [3, 8, 1], [10, 3, 5]]

Diccionario convertido: {4: [4, 1, 3, 10], 5: [5, 3, 8, 3], 6: [6, 5, 1, 5]}

Método 2: Usar dict() + comprensión de lista + zip()

En esto, la tarea de asignar valores a las claves del diccionario y la conversión se realiza mediante dict() y zip() y la comprensión del diccionario. Las funcionalidades de descanso son similares al método anterior.

Python3

# Python3 code to demonstrate working of
# Convert Matrix to Dictionary Value List
# Using dict() + list comprehension + zip()
from collections import defaultdict
  
# initializing list
test_list = [[4, 5, 6], [1, 3, 5], [3, 8, 1], [10, 3, 5]]
               
# printing original list
print("The original list is : " + str(test_list))
  
# initializing map list 
map_list = [4, 5, 6]
  
# mapping column using zip() and conversion using using dict()
# converts to list of dictionary
temp = [dict(zip(map_list, sub)) for sub in test_list]
  
# convert to dictionary value list 
res = defaultdict(list) 
{res[key].append(sub[key]) for sub in temp for key in sub}
  
# printing result
print("Converted Dictionary : " + str(dict(res)))

Producción:

La lista original es: [[4, 5, 6], [1, 3, 5], [3, 8, 1], [10, 3, 5]]

Diccionario convertido: {4: [4, 1, 3, 10], 5: [5, 3, 8, 3], 6: [6, 5, 1, 5]}

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 *