擅长:python、mysql、java
<p>使用具有正常循环的生成器来执行此类需要状态的任务:</p>
<pre><code>def errsplit(err):
for e in err.splitlines():
errindex = e.find('error:')
if errindex > -1: yield e[errindex:]
</code></pre>
<p>如果您需要这个列表,只需<code>list(errsplit(err))</code>。在</p>
<p>列表理解并不是真正用来处理存储状态的,尝试在其中使用存储状态可能会很笨拙。在</p>
<p>也就是说,注意regex可能更好,正如@JBernardo所建议的那样。在</p>