[英]Why is using a Python generator much slower to traverse binary tree than not?
[英]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.