Python – Agrupación entre arrays

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

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

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

Deja una respuesta

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