<p>我很感激这可能是一个重复,但在审查了几个问题后,我仍然无法看到答案。你知道吗</p>
<p>我得到了一个语法错误,从我的代码使用列表理解。我有一个列表,a,包含一些数字,并试图输出一个新的列表,只包含偶数。你知道吗</p>
<p>我要缩短的代码是:</p>
<pre><code>b = []
for num in a:
if num % 2 == 0:
b.append(num)
print(b)
</code></pre>
<p>我写的是:</p>
<pre><code>evens = [num if num % 2 == 0 for num in a]
^
SyntaxError: invalid syntax
</code></pre>
<p>然而,我得到了一个语法错误在上述点。你知道吗</p>
<p>我把理解改写为:</p>
<pre><code>even = [num for num in a if num % 2 ==0]
</code></pre>
<p>这就成功了。你知道吗</p>
<p>通过阅读文档,我知道有两种方法可以编写一个列表:</p>
<pre><code>A for B in C if <condition>
</code></pre>
<p>以及</p>
<pre><code>A if <condition> for b in C
</code></pre>
<p>第一种情况怎么了?你知道吗</p>
<p>很简单,如果没有“else”,那么“if”语句必须出现在列表的末尾。你可以写:</p>
<pre><code>A if <condition> else D for B in C
</code></pre>
<p>但你不会写字</p>
<pre><code>A if <condition> for B in C
</code></pre>
<p>因为没有“别人”。你知道吗</p>