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