Python while循环时带有!= 0

时间:2018-10-01 19:54:43

标签: python while-loop equals

我在while循环中遇到问题:

  def ancestors(node, tree):
        ancestorsss = []
        ancestorsss.append(node.value)
        parent = node.parent
        while(parent != 0):
            parent_node = find_node(parent, tree)
            parent = parent_node.parent
            ancestors(parent_node, tree)
        return ancestorsss

在我的示例中,第一个父级为4,它应该经过while循环,在第二个迭代父级中,它也为2,也可以,第三次父级为1,也可以,然后父级为0,而while循环仍在继续吗?我认为应该在parent = 0时退出,但不是。

编辑: 节点是具有值和父对象的对象。 树是节点对象列表[[1,0),(2,1),(3,1),(4,2),(5,2),(6,3),(7,3),( 8,4),(9,4)]。

现在,我用node(8,4)调用祖先函数,并认为它应该进入(8,4),(4,2),(2,1)和(1,0)。它不会以(1、0)结束

编辑2:

def find_node(parent, tree):
    node = next((x for x in tree if x.value == parent), None)
    return node

1 个答案:

答案 0 :(得分:0)

最有可能是父变量类型中的问题,请确保它是整数或将条件更改为while parent != "0"

如果以上都不是,则可以共享有关nodenode.parent的更多详细信息