如何在Python中合并任意数量的元组?

tec*_*cal 7 python tuples iterable-unpacking

我有一个元组列表:

l=[(1,2,3),(4,5,6)]
Run Code Online (Sandbox Code Playgroud)

列表可以是任意长度的,元组也是如此.我想按照它们出现的顺序将其转换为元素的列表或元组:

f=[1,2,3,4,5,6] # or (1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)

如果我知道在开发时我会收到多少元组,我可以添加它们:

m = l[0] + l[1]  # (1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)

但是因为直到运行时我才知道我会有多少元组,所以我不能这样做.我觉得有一种方法可以map用来做到这一点,但我无法弄明白.我可以遍历元组并将它们添加到累加器,但这将创建许多永远不会被使用的中间元组.我还可以遍历元组,然后迭代元组的元素,并将它们附加到列表中.这看起来非常低效.也许有一种更简单的方式让我完全屈服.有什么想法吗?

And*_*Dog 18

链接它们(只创建一个生成器而不是保留额外的内存):

>>> from itertools import chain
>>> l = [(1,2,3),(4,5,6)]
>>> list(chain.from_iterable(l))
[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)


Cat*_*lus 9

l = [(1, 2), (3, 4), (5, 6)]
print sum(l, ()) # (1, 2, 3, 4, 5, 6)
Run Code Online (Sandbox Code Playgroud)