<p>下面是一个使用<a href="http://docs.python.org/2/library/itertools.html#itertools.chain.from_iterable" rel="nofollow">^{<cd1>}</a>和<a href="http://www.python.org/dev/peps/pep-0289/" rel="nofollow">generator expression</a>的非常有效的解决方案:</p>
<pre><code>>>> from itertools import chain
>>> a = [1]
>>> list(chain.from_iterable((x+1, x*3) for x in a))
[2, 3]
>>> a = [2, 3]
>>> list(chain.from_iterable((x+1, x*3) for x in a))
[3, 6, 4, 9]
>>> a = [3, 6, 4, 9]
>>> list(chain.from_iterable((x+1, x*3) for x in a))
[4, 9, 7, 18, 5, 12, 10, 27]
>>>
</code></pre>
<p>提供的链接应该解释除<code>list(...)</code>部分之外的所有内容。我这样做是因为结果是列表,而不是<code><itertools.chain object at 0x01815370></code>。你知道吗</p>
<hr/>
<p><strong>根据评论编辑:</strong></p>
<p>是的,你可以链上你想要的任意多的<code>chain objects</code>,然后最后把整个东西转换成一个列表。请参见下面的演示:</p>
<pre><code>>>> a = [3, 6, 4, 9]
>>> list(chain.from_iterable((chain.from_iterable((x+1, x*3) for x in a), chain.from_iterable((x+1, x*3) for x in a))))
[4, 9, 7, 18, 5, 12, 10, 27, 4, 9, 7, 18, 5, 12, 10, 27]
>>>
</code></pre>