Estoy tratando de comprender cómo y cuándo se evalúan las expresiones de los iteradores. El siguiente parece ser una expresión perezosa:iterador perezosa de Python
g = (i for i in range(1000) if i % 3 == i % 2)
Éste, sin embargo falla en la construcción:
g = (line.strip() for line in open('xxx', 'r') if len(line) > 10)
no tengo el archivo llamado 'xxx'. Sin embargo, como esto es perezoso, ¿por qué está fallando tan pronto?
Gracias.
EDI: ¡Wow, hice un flojo!
g = (line.strip() for i in range(3) for line in open(str(i), 'r'))
para i en el rango (1) es tres veces más flojo que yo en el rango (3) – Jimmy