<p>你问这个问题很好,因为误用列表是一种不好的形式
像这样的理解。您显示的代码使用<code>append</code>,而不是生成
是<code>temp</code>的元素,但由于其副作用。<strong>避免列表中的副作用
理解</strong>!在</p>
<p>所以,有几件事你可以做。首先,你可以使用
<a href="http://docs.python.org/3.1/library/itertools.html#chain" rel="nofollow noreferrer">^{<cd3>}</a>:</p>
<pre><code>>>> from itertools import chain
>>> list(chain(*mayorPowers))
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
</code></pre>
<p>除了将<code>mayorPowers</code>的元素作为单独的参数传递给<code>chain</code>,还可以使用<a href="http://docs.python.org/3.1/library/itertools.html#itertools.itertools.chain.from_iterable" rel="nofollow noreferrer">^{<cd6>}</a>:</p>
^{pr2}$
<p>或者您可以使用<a href="http://docs.python.org/3.1/library/stdtypes.html#mutable-sequence-types" rel="nofollow noreferrer">^{<cd7>}</a>:</p>
<pre><code>>>> ww2 = []
>>> for mp in mayorPowers:
... ww2.extend(mp)
...
>>> ww2
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
</code></pre>
<p>或者<a href="http://docs.python.org/3.1/library/functions.html#sum" rel="nofollow noreferrer">^{<cd8>}</a>(我想我最喜欢这个):</p>
<pre><code>>>> sum(mayorPowers, [])
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
</code></pre>
<p>或者,有点疯狂(使用<a href="http://docs.python.org/3.1/library/functools.html#reduce" rel="nofollow noreferrer">^{<cd9>}</a>和{a6})</p>
<pre><code>>>> from functools import reduce
>>> from operator import add
>>> reduce(add, mayorPowers)
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
</code></pre>