[英]How to return instead of print
我通過使用print()
獲得了想要的結果,但在使用return
時我想要相同的結果。 我怎樣才能把它改成return
? 當我這樣做時,它只返回第一個key, value
即我想要在 BST 中包含四個key, value
。
def inOrder(self, aNode):
if aNode:
self.inOrder (aNode.leftChild)
print (aNode.key + ' ' + aNode.payload +'\n')
self.inOrder (aNode.rightChild)
我正在尋找的結果是有四個鍵,后跟它們的值。
要完全按照您的意願執行操作,您需要使用yield關鍵字( 此處為yield from
語句的詳細信息)
def inOrder(self, aNode):
if aNode:
yield from self.inOrder(aNode.leftChild)
yield (aNode.key, aNode.payload)
yield from self.inOrder(aNode.rightChild)
這將返回一個生成器,您可以使用list(inOrder(...))
你也可以有一個專門的論點,你會在經歷時更新:
def inOrder(self, aNode, res=[]):
if aNode:
self.inOrder(aNode.leftChild, res)
res.append((aNode.key, aNode.payload))
self.inOrder(aNode.rightChild, res)
這將提供類似的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.