我有一个dict,其中键(节点)的值是他的儿子。我创建了一个类来获取该节点的子节点和父节点,在dict上迭代,并将键作为对象保存在另一个列表中。当我传递到一个子树时,问题就出现了,这个子树必须是前一个节点的同一个对象(就像另一个节点的子节点),以便在列表的每个对象中都有树的完全独立性。当我明显地保存它时,它被保存为另一个对象。如何链接这些?就像检查是否已经有一个类的对象具有该值,以便在变量中获取该值并处理它。。。也许我不懂(?)背后的逻辑。你知道吗
class Nodo():
def __init__(self,value):
self.val = value
self.figli = []
self.padre = None
d_i = {'2': ['3'], '1': ['2', '4'], '5': ['6'], '7': ['8', '9', '10'],
'10': ['12'], '8': ['11']}
nodi = []
for k,v in d_i.items():
nodo = Nodo(k)
nodi.append(nodo)
for figlio in v:
figlio = Nodo(figlio)
nodo.figli.append(figlio)
figlio.padre = nodo
输出应如下所示:
a = '2'
a.figli = ['3']
a.padre = '1'
#all of that value should be type = Nodo
等等。。。 但正如我所说的,我并不是每一次都在同一个物体上加儿子。你知道吗
您的主要问题是没有正确研究Python中现有的树和节点处理。尤其是,您无法检查某个特定的族成员是否已经有一个现有节点。对于dict中的每个节点和每个子节点,可以使用该名称创建一个新的独立节点。您需要您的类有一个“findthisnode”方法,该方法将返回现有节点或新节点。你知道吗
有了这个函数,主程序就可以简单地使用返回的节点,如图所示添加子节点。像这样:
这有助于你找到解决方案吗?你知道吗
相关问题 更多 >
编程相关推荐