擅长:python、mysql、java
<p>列表理解是一种将一个列表(实际上是任何iterable)转换为另一个列表的工具。在这个转换过程中,元素可以有条件地包含在新列表中,并且每个元素都可以根据需要进行转换。在</p>
<p>如果您熟悉函数式编程,您可以将列表理解看作是<code>filter</code>后跟<code>map</code>的语法糖:</p>
<pre><code>>>> doubled_odds = map(lambda n: n * 2, filter(lambda n: n % 2 == 1, numbers))
>>> doubled_odds = [n * 2 for n in numbers if n % 2 == 1]
</code></pre>
<p>每个列表理解都可以重写为for循环,但不是每个for循环都可以重写为列表理解。在</p>
<p>如果您可以重写代码,使其看起来像这样的for循环,那么也可以将其重写为列表理解:</p>
^{pr2}$
<p>您可以将上面的for循环重写为如下列表理解:</p>
<pre><code>new_things = ["something with " + ITEM for ITEM in old_things if condition_based_on(ITEM)]
</code></pre>