我试图创建一个lambda函数并尝试返回元组值,但我得到生成器对象错误

2024-09-27 21:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

val_by_vec = lambda x ,t=(): print(next(x ,t[i]) for t[i] in range(0,len(t)))

val_by_vec('Raj',((2,"Raj"),(3,"Amalu")))

输出:

<generator object <lambda>.<locals>.<genexpr> at 0x000002A1ABC5FEB0>

预期产出:

('Raj', (2, 'Raj'))
('Raj', (3, 'Amalu'))

Tags: lambdainforbylenobjectrangeval
1条回答
网友
1楼 · 发布于 2024-09-27 21:28:06

next无论如何都只会从该迭代返回下一个对象,因此使用它没有意义,您可以只解压缩一个列表

val_by_vec = lambda x ,t=(): print(*[(x ,t[i]) for i in range(0,len(t))], sep="\n")

另外,这不是错误,您正在打印已创建的生成器对象

相关问题 更多 >

    热门问题