gpt4 book ai didi

python - 递归生成器不工作

转载 作者:行者123 更新时间:2023-12-01 02:06:04 25 4
gpt4 key购买 nike

我正在使用他的代码来展平嵌套元组:

def get_tuple_leaves(t, out=[]):
for i in t:
if isinstance(i, str):
yield i
else:
get_tuple_leaves(i, out)

这个想法是让 (('a', 'b'), 'c') 等输入转换为 ('a', 'b', 'c')

但由于某种原因,递归调用永远不会被执行,输出为 ('c')

最佳答案

您不会从递归调用中返回,或者更确切地说,不会产生结果。尝试:

def get_tuple_leaves(t, out=[]):
for i in t:
if isinstance(i, str):
yield i
else:
yield from get_tuple_leaves(i, out)

print(list(get_tuple_leaves((('a', 'b'), 'c'))))

结果是:

['a', 'b', 'c']

关于python - 递归生成器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49059247/

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