gpt4 book ai didi

python - 嵌套生成器到嵌套列表

转载 作者:行者123 更新时间:2023-12-05 03:55:11 26 4
gpt4 key购买 nike

我有时会遇到这样一种情况:我正在使用一个生成器,它的成员本身就是生成器(对于 n 个级别,依此类推)。

调试时,在无用<generator object blah at blah>中打印这些结果

显然我可以做到print(list(my_gen))将顶层转换为列表。但后来我得到

[<generator object blah at blah>, <generator object blah at blah>, <generator object blah at blah>]

同样没用。

是否有一个简单的命令来打印一直向下求值的嵌套生成器?

我知道我可以编写一个递归函数来执行此操作,但我正在寻找一种简单的方法。

最佳答案

您可以编写一个递归函数 来评估N 级嵌套生成器。我不认为为此存在内置函数。

import types

def _gen(gen):
if not isinstance(gen,types.GeneratorType):
return gen
else:
return [_gen(i) for i in gen]

my_gen=((j for j in range(i)) for i in range(10))

print(_gen(my_gen))

[[],
[0],
[0, 1],
[0, 1, 2],
[0, 1, 2, 3],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5, 6],
[0, 1, 2, 3, 4, 5, 6, 7],
[0, 1, 2, 3, 4, 5, 6, 7, 8]]

关于python - 嵌套生成器到嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60349967/

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