gpt4 book ai didi

python - 从递归函数返回字典

转载 作者:行者123 更新时间:2023-11-28 21:51:48 24 4
gpt4 key购买 nike

我有一个二叉搜索树,其中每个节点代表一个游戏长度。我必须返回一个字典,其中键是游戏的长度,值是该长度的游戏数量。递归调用遍历树中的每个节点,但返回不正确的字典。我很肯定问题在于我如何返回字典。任何帮助将不胜感激

game_len = {}
if not node.children:
key = len(node.possible_next_moves())
if key not in game_len:
game_len[key] = 1
else:
game_len[key] += 1
else:
key = len(node.possible_next_moves())
if key not in game_len:
game_len[key] = 1
else:
game_len[key] += 1
[game_lengths(child) for child in node.children]
return game_len

最佳答案

一般来说,有两种方法可以处理递归算法的返回值。您可以从递归调用中收集返回值并将它们组合起来,或者您可以传入递归调用可以修改的额外可变参数。我认为后者在这种情况下可能是最好的,因为字典很容易在适当的地方发生变异,但并不是特别容易合并在一起:

def game_lengths(node, result=None):
if result is None:
result = {}

#... add a value to the result dict, handle base cases, etc.

for child in node.children:
game_lengths(child, result)

return result

关于python - 从递归函数返回字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29377930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com