Dado 2 Matrix, con 2 elementos en cada fila, agrúpelos en base al primer elemento.
Entrada : test_list1 = [[2, 0], [8, 4], [9, 3]], test_list2 = [[8, 1], [9, 7], [2, 10]]
Salida : {2: [0, 10], 8: [4, 1], 9: [3, 7]}
Explicación : Todos los valores después del mapeo cruzan Matrix, 2 mapeados a 0 y 10.Entrada : lista_prueba1 = [[8, 4], [9, 3]], lista_prueba2 = [[8, 1], [9, 7]]
Salida : {8: [4, 1], 9: [3, 7 ]}
Explicación : Todos los valores después del mapeo cruzan Matrix.
Método n. ° 1: usar defaultdict() + bucle
Esta es una de las formas en que se puede realizar esta tarea. En esto, iteramos, agregamos ambas listas y luego formamos grupos a partir de elementos similares y los convertimos a diccionario con lista de valores.
Python3
# Python3 code to demonstrate working of # Inter Matrix Grouping # Using defaultdict() + loop from collections import defaultdict # initializing lists test_list1 = [[5, 8], [2, 0], [8, 4], [9, 3]] test_list2 = [[8, 1], [9, 7], [2, 10], [5, 6]] # printing original list print("The original list 1 : " + str(test_list1)) print("The original list 2 : " + str(test_list2)) # initializing mapping list res = defaultdict(list) # concatenation matrix using 2 lists for key, val in test_list1 + test_list2: res[key].append(val) # printing result print("The Grouped Matrix : " + str(dict(res)))
The original list 1 : [[5, 8], [2, 0], [8, 4], [9, 3]] The original list 2 : [[8, 1], [9, 7], [2, 10], [5, 6]] The Grouped Matrix : {5: [8, 6], 2: [0, 10], 8: [4, 1], 9: [3, 7]}
Método #2: Usando la comprensión del diccionario + dict()
Esta es otra forma más en la que se puede realizar esta tarea. En esto, iteramos para todos los elementos de ambas arrays al convertir cada uno a diccionario y agrupar sus valores. Es importante tener rastros del mapeo de cada elemento tanto en Matrix.
Python3
# Python3 code to demonstrate working of # Inter Matrix Grouping # Using dictionary comprehension + dict() # initializing lists test_list1 = [[5, 8], [2, 0], [8, 4], [9, 3]] test_list2 = [[8, 1], [9, 7], [2, 10], [5, 6]] # printing original list print("The original list 1 : " + str(test_list1)) print("The original list 2 : " + str(test_list2)) # mapping dictionaries together, converting each row to dictionary res = {key: [dict(test_list1)[key], dict(test_list2)[key]] for key in dict(test_list1)} # printing result print("The Grouped Matrix : " + str(dict(res)))
The original list 1 : [[5, 8], [2, 0], [8, 4], [9, 3]] The original list 2 : [[8, 1], [9, 7], [2, 10], [5, 6]] The Grouped Matrix : {5: [8, 6], 2: [0, 10], 8: [4, 1], 9: [3, 7]}
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