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))
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)))
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