擅长:python、mysql、java
<p>在关于<a href="https://stackoverflow.com/questions/53764256/is-is-safe-to-use-next-within-a-for-loop-in-python">this question</a>的讨论之后,我决定删除我先前的回答,因为有更好的方法可以做到这一点。问题与我之前指出的相同:您使用的是<code>readlines</code>,这意味着当您希望一次解析一行时,您必须将整个文件读入内存,但是我建议使用一个简单的<code>for</code>循环的解决方案变得很难处理,因为需要在搜索的行之后访问该行,相反,您需要使用生成器在文件中迭代当前行和下一行的知识:</p>
<pre><code>def pairwiseLowMemory(iterable) :
current = next(iterable, None)
if not current :
return
while (True) :
last = current
current = next(iterable, None)
if not current :
break
yield (last, current)
</code></pre>
<p>然后使用成对循环,使当前行和下一行在循环中都有效:</p>
^{pr2}$
<p>这种方法允许您在了解下一行的同时,干净而优雅地处理一行,<code>pairwise</code>实现可以高效地完成这项工作,而不需要不合理的内存需求。在</p>