J'essaie de comprendre comment et quand les expressions d'itérateur sont évaluées. Ce qui suit semble être une expression paresseuse:Python paresseux itérateur
g = (i for i in range(1000) if i % 3 == i % 2)
Celui-ci, échoue cependant sur la construction:
g = (line.strip() for line in open('xxx', 'r') if len(line) > 10)
Je n'ai pas le fichier nommé 'xxx'. Cependant, puisque cette chose est paresseuse, pourquoi échoue-t-elle si tôt?
Merci. EDI: Wow, j'ai fait un paresseux!
g = (line.strip() for i in range(3) for line in open(str(i), 'r'))
pour i dans la gamme (1) est trois fois plus paresseux que pour i dans la gamme (3) – Jimmy