我在Python 3.6的IDLE中尝试了以下内容
print(value for value in range(1,100))
在IDLE中生成一条消息
<generator object <genexpr> at 0x101b73a40>
我很困惑这意味着什么。我做错了什么?
答案 0 :(得分:13)
(value for value in range(1,100))
会生成generator
个对象,如果您要打印list
,只需将其打包在[]
print([value for value in range(1,100)])
或者你可以简单地
print(list(range(1,100)))
您可以阅读HERE
的生成器返回生成器迭代器的函数。它看起来像一个普通函数,除了它包含yield表达式,用于生成一个在for循环中可用的值,或者可以使用next()函数一次检索一个值。
通常是指生成器函数,但在某些上下文中可能引用生成器迭代器。如果预期含义不明确,使用完整的术语可以避免含糊不清。
答案 1 :(得分:4)
print([value for value in range(1,100)])
您应该将其包含在列表[]
中以生成值
答案 2 :(得分:0)
你想要的只是在这里使用列表理解,但你没有使用列表 它应该是
for i in range(1,100):
print(i)
如果你仍想使用列表理解,它就像这样
[print(x) for x in range(1,100)]
这将给出类似
的输出1
2
3
....
99
100
[None, None, None, ...97 times more]