擅长:python、mysql、java
<p>是的,赋值发生在那里,就像在<code>for</code>循环中一样。没有创建新作用域。</p>
<p>这绝对是预期的行为:在每个周期中,值都绑定到指定的名称。例如</p>
<pre><code>>>> x=0
>>> a=[1,54,4,2,32,234,5234,]
>>> [x for x in a if x>32]
[54, 234, 5234]
>>> x
5234
</code></pre>
<p>一旦识别出这一点,似乎就很容易避免:不要对理解中的变量使用现有的名称。</p>