A veces, mientras trabajamos con Python Matrix, podemos tener un problema en el que necesitamos extraer todas las coordenadas adyacentes de la coordenada dada. Este tipo de problema puede tener aplicación en muchos dominios, como el desarrollo web y la programación escolar. Vamos a discutir cierta forma en que se puede realizar esta tarea.
Entrada : test_tup = (1, 2, 3)
Salida : [[0, 1, 2], [0, 1, 3], [0, 1, 4], [0, 2, 2], [0, 2 , 3], [0, 2, 4], [0, 3, 2], [0, 3, 3], [0, 3, 4], [1, 1, 2], [1, 1, 3 ], [1, 1, 4], [1, 2, 2], [1, 2, 3], [1, 2, 4], [1, 3, 2], [1, 3, 3], [1, 3, 4], [2, 1, 2], [2, 1, 3], [2, 1, 4], [2, 2, 2], [2, 2, 3], [2 , 2, 4], [2, 3, 2], [2, 3, 3], [2, 3, 4]]
Entrada : test_tup = (5, 6)
Salida : [[4, 5], [4 , 6], [4, 7], [5, 5], [5, 6], [5, 7], [6, 5], [6, 6], [6, 7]]
Método: Usar recursividad +yield
La combinación de las funcionalidades anteriores se puede usar para resolver este problema. En esto, extraemos los elementos dinámicamente usando yield para las coordenadas alrededor de la coordenada de consulta y usando recursividad, proceso para la siguiente columna y fila.
# Python3 code to demonstrate working of # Adjacent Coordinates in N dimension # Using recursion + yield # helper_fnc def adjac(ele, sub = []): if not ele: yield sub else: yield from [idx for j in range(ele[0] - 1, ele[0] + 2) for idx in adjac(ele[1:], sub + [j])] # initializing tuple test_tup = (3, 4) # printing original tuple print("The original tuple : " + str(test_tup)) # Initialize dictionary keys with Matrix # Using deepcopy() res = list(adjac(test_tup)) # printing result print("The adjacent Coordinates : " + str(res))
The original tuple : (3, 4) The adjacent Coordinates : [[2, 3], [2, 4], [2, 5], [3, 3], [3, 4], [3, 5], [4, 3], [4, 4], [4, 5]]
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