Tôi đang cố gắng hiểu cách thức và khi nào các biểu thức trình vòng lặp được đánh giá. Sau đây có vẻ là một biểu hiện lười biếng:Trình lặp lười biếng của Python
g = (i for i in range(1000) if i % 3 == i % 2)
này một, tuy nhiên không thành công trên xây dựng:
g = (line.strip() for line in open('xxx', 'r') if len(line) > 10)
Tôi không có tệp có tên 'xxx'. Tuy nhiên, kể từ khi điều này là lười biếng, tại sao nó không sớm như vậy?
Cảm ơn.
EDI: Wow, tôi đã làm một người lười biếng!
g = (line.strip() for i in range(3) for line in open(str(i), 'r'))
cho i trong phạm vi (1) gấp ba lần so với i trong phạm vi (3) – Jimmy