簡體   English   中英

Python生成器遍歷一棵樹

[英]Python generator traverse a tree

我是Python生成器的新手。 在這里,我想對樹進行后遍歷。 我發現其他人的代碼如下。 我不太了解它,相反,我想像后者一樣簡單地編寫它。 那么有人可以告訴我為什么我錯了嗎?

def _loopallchildren(parent):
    for child in parent.children:
        if child.children:
            for subchild in _loopallchildren(child):
                yield subchild
        yield child

錯誤的代碼:

def _loopallchildren(parent):
    for child in parent.children:
        if child.children:
            _loopallchildren(child)
        yield child

出於同樣的原因, _loopallchildren(root)外部調用_loopallchildren(root)而不執行任何操作也不會執行任何操作。 您必須遍歷生成器才能使用它。

yield from _loopallchildren(child)您可以使用yield from _loopallchildren(child)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM