擅长:python、mysql、java
<p>Python有一个三元运算符。给你:</p>
<p><code>A if COND else B</code></p>
<p>它被用作整个代码块。列表生成器也可以在正文的末尾有一个<code>if</code>-语句,用于过滤值。所有这些发电机都是正确的:</p>
<pre><code>[A for ... in very_long_iterator]
[(A if COND else B) for ... in very_long_iterator]
[(A if COND else B) for ... in very_long_iterator if COND2]
</code></pre>
<p><em>(<code>()</code>不是必需的,但它们用于区别if else和generator if)</em></p>
<p>但是不能在<code>for</code>之前使用<code>if</code>,也不能在没有<code>else</code>的情况下使用<code>if</code>,因为它:</p>
<ul>
<li>不是“三元”代码块</li>
<li>不是生成器的<code>if</code>-语句,因为它在<code>for</code>之前</li>
</ul>
<p>所以这就产生了一个错误。你知道吗</p>