Я пытаюсь оптимизировать алгоритм генерации лабиринта. На данный момент у меня есть список наборов узлов и список самих узлов. Узлы хранятся в виде (x, y) кортежей. В начале каждый набор содержит только один узел. Я выбираю случайную границу между двумя узлами и проверяю, находятся ли они в одном наборе. Вот проблема - я должен перебирать список наборов и просматривать каждый отдельный элемент, пока не найду набор, содержащий заданные узлы / узлы. Я хочу иметь доступ к наборам как к свойству класса Node, но я также хочу, чтобы мои наборы содержали объекты класса "Node", и я сталкиваюсь с этим:
class Node:
def __init__(self, xy:tuple, group:set):
self.xy = xy
self.group = group
node = Node((10, 10),{Node(10, 10),{Node(10, 10),{... and so on }}})
Как мне создать такой отношение, так что я могу получить доступ к наборам как node.group и в то же время свойство group будет указывать на необходимый набор с другими объектами Node без рекурсии?