我一直在尝试将此生成器函数转换为生成器表达式,但没有成功。生成器表达式是否可以具有相同的输出?
def gen5(num):
for i in range(num):
yield i *2
yield i *10
yield i *i
g = gen5(4)
list(g)
[0, 0, 0, 2, 10, 1, 4, 20, 4, 6, 30, 9]
我尝试了以下方法,但得到了 (None, None, None) 输出。
gen_exp2 = (((yield u*2), (yield u*10) ,(yield u*u)) for u in range(4))
list(gen_exp2)
[0,
0,
0,
(None, None, None),
2,
10,
1,
(None, None, None),
4,
20,
4,
(None, None, None),
6,
30,
9,
(None, None, None)]
我也这样做了,但它提供了 4 个嵌套元组而不是上面的列表。
gen_exp3 = (((i*2), (i*10), (i*i)) for i in range(4))
list(gen_exp3)
[(0, 0, 0), (2, 10, 1), (4, 20, 4), (6, 30, 9)]
另外,如何向生成器表达式添加参数?提前谢谢了。