擅长:python、mysql、java
<p>列表理解用于<em>创建</em>列表,例如:</p>
<pre><code>squares = [item ** 2 for item in some_list]
</code></pre>
<p>For循环更适合于<em>使用列表元素(或其他对象)执行某项操作:</p>
^{pr2}$
<p>使用理解来理解它的副作用,或者使用for循环来创建列表,通常是不受欢迎的。在</p>
<hr/>
<p>这里的一些其他答案主张,一旦理解变得太长,就把它变成一个循环。我认为这不是一个好的风格:创建列表所需的<code>append</code>调用仍然很难看。相反,重构为函数:</p>
<pre><code>def polynomial(x):
return x ** 4 + 7 * x ** 3 - 2 * x ** 2 + 3 * x - 4
result = [polynomial(x) for x in some_list]
</code></pre>
<p>只有当你关心速度-而且你已经完成了你的分析!–你应该保留长的,不可读的列表理解。在</p>