Python – Agrupar elementos en Matrix

Dada una array con dos columnas, agrupe los elementos de la segunda columna sobre la base de la primera columna.

Entrada : test_list = [[5, 8], [2, 0], [5, 4], [2, 3], [2, 9]] Salida: {5: [8, 4], 2:
[ 0 , 3, 9]}
Explicación : 8 y 4 están asignados a 5 en Matrix, todos los demás a 2.

Entrada : test_list = [[2, 8], [2, 0], [2, 4], [2, 3], [2, 9]] Salida: {2: [8, 4, 0, 3
, 9 ]}
Explicación : todo asignado a 2.

Método n. ° 1: usar la comprensión del diccionario + bucle

Esta es una de las formas en que se puede realizar esta tarea. En esto, construimos el diccionario con valores de lista vacíos de la fila 1 y luego ejecutamos un bucle para asignarle valores.

Python3

# Python3 code to demonstrate working of 
# Group Elements in Matrix
# Using dictionary comprehension + loop
  
# initializing list
test_list = [[5, 8], [2, 0], [5, 4], [2, 3], [7, 9]]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing empty dictionary with default empty list 
res = {idx[0]: [] for idx in test_list}
  
# using loop for grouping
for idx in test_list:
    res[idx[0]].append(idx[1])
  
# printing result 
print("The Grouped Matrix : " + str(res))
Producción

The original list : [[5, 8], [2, 0], [5, 4], [2, 3], [7, 9]]
The Grouped Matrix : {5: [8, 4], 2: [0, 3], 7: [9]}

Método #2: Usar loop + defaultdict()

Esto es similar al método anterior. La diferencia es que la malla vacía inicial se crea usando defaultdict().

Python3

# Python3 code to demonstrate working of 
# Group Elements in Matrix
# Using loop + defaultdict()
from collections import defaultdict
  
# initializing list
test_list = [[5, 8], [2, 0], [5, 4], [2, 3], [7, 9]]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing empty dictionary using defaultdict
res = defaultdict(list)
  
# using loop for grouping
for idx in test_list:
    res[idx[0]].append(idx[1])
  
# printing result 
print("The Grouped Matrix : " + str(dict(res)))
Producción

The original list : [[5, 8], [2, 0], [5, 4], [2, 3], [7, 9]]
The Grouped Matrix : {5: [8, 4], 2: [0, 3], 7: [9]}

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 *