【发布时间】:2021-07-20 18:23:48
【问题描述】:
我尝试使用列表理解,请参阅此处的链接: https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions
但它创建生成器而不是返回列表
当我尝试将其转换为列表时-它只工作一次,然后列表消失
values=[3,"fasdf",99]
vv=(str(x) for x in values)
vv
<generator object <genexpr> at 0x047D2F08>
list(vv)
['3', 'fasdf', '99']
list(vv)
[]
values
[3, 'fasdf', 99]
【问题讨论】:
-
是的,生成器只能使用一次。制作一个列表来存储值,以便它们可以多次使用
-
跟进@mousetail,
()中的理解将返回generator。如果您只想要最后的列表而不需要生成器,请使用方括号:[str(x) for x in values]。我建议您阅读有关生成器的更多信息here! -
感谢您的建议。我不知道 () 是一个生成器。
标签: python python-3.x