擅长:python、mysql、java
<p>在#1中,您定义一个结果列表,然后按顺序附加到该列表。你知道吗</p>
<p>在#2中,为每个循环定义一个新的空列表。你知道吗</p>
<p>这样做的效果是,第二个解决方案不存储来自<code>for</code>循环的先前迭代的结果。你知道吗</p>
<hr/>
<p>有几种方法可以提高代码的可读性:</p>
<p><strong>发生器功能</p>
<p>定义一个生成器函数并删除样板文件列表创建代码。你知道吗</p>
<pre><code>def custom_filter(lst, i):
for element in lst:
if element < i:
yield element
res = list(custom_filter(a, 5))
</code></pre>
<p>理解力</p>
<p>您可以将此设置为惰性并迭代生成器:</p>
<pre><code>res = (i for i in a if i < 5)
</code></pre>
<p>或者您可以使用列表:</p>
<pre><code>res = [i for i in a if i < 5]
</code></pre>