我想弄清楚Python中的生成器,我試圖過濾列表並將它們平方並返回輸出。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
我做錯了什麼?
不要使用'list'作爲變量名;它掩蓋了內置的類型。 –
這裏的問題究竟是什麼?你期望看到什麼產出?你忘了迭代表達式嗎? –
預期產量和實際產量是多少? – rightfold