回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<P>考虑下面的例子:</P>
<pre><code>s = 'abc'
[(c1, c2) for j, c2 in enumerate(s) for i, c1 in enumerate(s)]
</code></pre>
<p>输出:</p>
<pre><code>[('a', 'a'),
('b', 'a'),
('c', 'a'),
('a', 'b'),
('b', 'b'),
('c', 'b'),
('a', 'c'),
('b', 'c'),
('c', 'c')]
</code></pre>
<p>如果在列表理解之外调用enumerate,并且将迭代器分配给变量,我希望得到相同的输出:</p>
<pre><code>it1, it2 = enumerate(s), enumerate(s)
[(c1, c2) for j, c2 in it1 for i, c1 in it2]
</code></pre>
<p>但我得到:</p>
<pre><code>[('a', 'a'), ('b', 'a'), ('c', 'a')]
</code></pre>
<p>发生了什么事?我使用Python 3.6.9</p>