我希望有人可以帮助我吗?我可以通过使用print()获得所需的结果,但是在使用return时希望得到相同的结果。如何将其更改为退货?当我执行此操作时,它仅返回第一个键,值是我想让dict()中包含四个键。
def inOrder(self, aNode):
if aNode:
self.inOrder (aNode.leftChild)
print (aNode.key + ' ' + aNode.payload +'\n')
self.inOrder (aNode.rightChild)
要完全执行您想要的操作,您需要使用yield
关键字:
def inOrder(self, aNode):
if aNode:
yield from self.inOrder(aNode.leftChild)
yield (aNode.key, aNode.payload)
yield from self.inOrder(aNode.rightChild)
但是,您还可以拥有一个特定的变量,在您浏览过程中将对其进行更新:
def inOrder(self, aNode, res=[]):
if aNode:
self.inOrder(aNode.leftChild, res)
res.append((aNode.key, aNode.payload))
self.inOrder(aNode.rightChild, res)
将会提供相似的结果。