Python生成器中的意外输出

ajk*_*hol 3 python list generator

我试图找出Python中的生成器,我试图过滤列表并对它们进行平方并返回输出.

list = [1, 4, -5, 10, -7, 2, 3, -1]

def square_generator(optional_parameter):
    return (x ** 2 for x in list if x > optional_parameter)
g = (square_generator(i) for i in list)

h = square_generator(0)
print h
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Ffi*_*ydd 5

定义生成器时,必须迭代它,如下所示:

for x in h:
    print x
Run Code Online (Sandbox Code Playgroud)

如果您只是尝试打印生成器,那么您将获得该对象:

<generator object <genexpr> at 0x02A4FB48>
Run Code Online (Sandbox Code Playgroud)