在迭代中返回lambda的yield

1 投票
1 回答
1387 浏览
提问于 2025-04-18 03:44
f=open('C:\\Python33\\text file.txt','r')

for c in iter(lambda: f.read(1),'\n'):
    print(?)

我该怎么打印出 lambda: f.read(1) 这个表达式返回的值呢?

1 个回答

3

只需要打印出 c。这就是你在 for 循环中从 iter() 得到的东西。

f=open('C:\\Python33\\text file.txt','r')

for c in iter(lambda: f.read(1),'\n'):
    print(c)

有个小建议,可以使用 with 语句:

with open('C:\\Python33\\text file.txt', 'r') as f:
    for c in iter(lambda: f.read(1), '\n'):
        print(c)

这样你就不需要再调用 f.close() 了。

撰写回答