我想了解如何以及何时迭代器表达式得到评估。下面似乎是一个懒惰的表现: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