Я строю графовый класс, представленный как dict. Класс графа используется для поиска пути в большой двумерной матрице сетки. Узлы хранятся в виде ключей, а соседние узлы хранятся в виде значений.
Это хорошо работает для поиска по быстрому пути, но мне также нужно вывести определенные узлы из условия, определяемого их координатами x и y.
class Node(object):
def __init__(self, x, y):
self.x = x
self.y = y
class Graph(dict):
def get_node_at(self, x, y):
for node in self:
if node.x == x and node.y == y:
return node
def set_neighbours(self):
pass
graph = Graph()
# build a 2d matrix of nodes
for x in range(10):
for y in range(10):
graph[Node(x,y)] = []
# set the neighbour nodes for each node
graph.set_neighbours()
mynode = graph.get_node_at(6,6) # will later be executed quite often
Есть ли способ оптимизировать класс графа, чтобы метод get_node_at работал лучше на большой сетке?