擅长:python、mysql、java
<p>我认为<code>yield</code>正在把你对词典的理解变成一个生成器表达式。所以,当您在生成器上迭代时,yield是“产生”看起来像<code>as</code>,<code>bs</code>…,但语句<code>yield ...</code>返回<code>None</code>的元素。所以,在一天结束时,你会得到一本看起来像<code>{'a': None, 'b': None, ...}</code>的字典。</p>
<p>令我困惑的是,这本词典到底是怎么出的。我猜这种行为实际上并没有被标准很好地定义,但我可能错了。</p>
<p>有趣的是,如果您尝试使用列表理解,python会抱怨:</p>
<pre><code>>>> a = [(yield i) for i in myset]
File "<stdin>", line 1
SyntaxError: 'yield' outside function
</code></pre>
<p>但显然是<a href="https://stackoverflow.com/questions/12324096/attempting-to-understand-yield-as-an-expression">Ok in a generator</a>。</p>