|
9
|
| Ben Blank Jarret Hardie · 技术社区 · 16 年前 |
|
|
1
25
您可以通过 iter() 带着哨兵:
|
|
|
2
10
你见过如何迭代文本文件中的行吗?
你可以用你自己的发电机做同样的事情:
参见: |
|
|
3
5
我更喜欢前面提到的基于迭代器的解决方案将其转换为for循环。另一个直接编写的解决方案是Knuth的“循环半”。
通过比较,您可以看到它是如何轻松地吊入自己的发电机并用作for循环的。 |
|
|
4
3
我看到,正如所预测的,典型和最流行的答案是使用非常专门的生成器“一次读取4个字节”。有时,一般性并不难(而且回报更大),因此,我建议采用以下非常一般的解决方案:
现在您想要的循环头只是:
编辑
:通过
常见的瑞士军刀,
或者,相当于:
|
|
|
5
1
python中的eof标记是一个空字符串,因此,如果不编写用迭代器将其包装起来的函数,您所拥有的就非常接近所能得到的最佳值。我可以通过改变
|
|
|
6
0
我将使用Tendayi的建议Re函数和迭代器来提高可读性:
|