我试图了解迭代器表达式的评估方式和时间。以下似乎是一个懒惰的表达:
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'))