Python – Convertir diccionario de coordenadas a array

A veces, mientras trabajamos con Python Matrix, podemos tener problemas en los que tenemos registros de diccionario con la clave como posición de array y su valor, y deseamos convertir eso en Matrix real. Esto puede tener aplicaciones en muchos dominios, incluida la programación competitiva y la programación día a día. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Uso de bucle + max()+ comprensión de lista
La combinación de los métodos anteriores se puede utilizar para resolver este problema. En esto, usamos max() para obtener las dimensiones de la array, lista de comprensión para crear la array y bucle para asignar valores.

# Python3 code to demonstrate working of 
# Convert Coordinate Dictionary to Matrix
# Using loop + max() + list comprehension
  
# initializing dictionary
test_dict = { (0, 1) : 4, (2, 2) : 6, (3, 1) : 7, (1, 2) : 10, (3, 2) : 11}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Convert Coordinate Dictionary to Matrix
# Using loop + max() + list comprehension
temp_x = max([cord[0] for cord in test_dict.keys()])
temp_y = max([cord[1] for cord in test_dict.keys()])
res = [[0] * (temp_y + 1) for ele in range(temp_x + 1)]
  
for (i, j), val in test_dict.items():
    res[i][j] = val
  
# printing result 
print("The dictionary after creation of Matrix : " + str(res)) 
Producción :

El diccionario original es: {(0, 1): 4, (1, 2): 10, (3, 2): 11, (3, 1): 7, (2, 2): 6}
El diccionario después de la creación de array: [[0, 4, 0], [0, 0, 10], [0, 0, 6], [0, 7, 11]]

Método #2: Uso de la comprensión de listas
Esta es otra forma más en la que se puede realizar esta tarea. Esto realiza una tarea similar a la función anterior, solo que la diferencia es que es una abreviatura del método anterior.

# Python3 code to demonstrate working of 
# Convert Coordinate Dictionary to Matrix
# Using list comprehension
  
# initializing dictionary
test_dict = { (0, 1) : 4, (2, 2) : 6, (3, 1) : 7, (1, 2) : 10, (3, 2) : 11}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Convert Coordinate Dictionary to Matrix
# Using list comprehension
temp_x, temp_y = map(max, zip(*test_dict))
res = [[test_dict.get((j, i), 0) for i in range(temp_y + 1)] 
                                  for j in range(temp_x + 1)]
  
# printing result 
print("The dictionary after creation of Matrix : " + str(res)) 
Producción :

El diccionario original es: {(0, 1): 4, (1, 2): 10, (3, 2): 11, (3, 1): 7, (2, 2): 6}
El diccionario después de la creación de array: [[0, 4, 0], [0, 0, 10], [0, 0, 6], [0, 7, 11]]

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 *