我想了解如何以及何時迭代器表達式得到評估。下面似乎是一個懶惰的表現:Python懶惰迭代器
g = (i for i in range(1000) if i % 3 == i % 2)
這一個,但是失敗建設:
g = (line.strip() for line in open('xxx', 'r') if len(line) > 10)
我沒有文件名爲「XXX」。但是,由於這件事很懶,爲什麼它很快就失敗了?
謝謝。 EDI:哇,我做了一個懶惰的!
g = (line.strip() for i in range(3) for line in open(str(i), 'r'))
對於我在範圍內(1)的惰性是我在範圍(3)中的3倍, – Jimmy 2010-02-12 04:31:34