我有一个元组列表:
l=[(1,2,3),(4,5,6)]
该列表可以是任意长度,元组也可以。我想按它们出现的顺序将其转换成元素的列表或元组:
f=[1,2,3,4,5,6] # or (1,2,3,4,5,6)
如果在开发时知道我会得到多少个元组,我可以添加它们:
m = l[0] + l[1] # (1,2,3,4,5,6)
但是由于直到运行时我才知道会有多少个元组,所以我无法做到这一点。我觉得有一种方法可以使用map,但我无法弄清楚。我可以遍历元组并将其添加到累加器中,但是那样会创建很多永远不会使用的中间元组。我还可以遍历元组,然后遍历元组的元素,并将它们附加到列表中。这似乎效率很低。也许有一种更简单的方法可以让我完全忘却。有什么想法吗?
map
链接它们(仅创建一个生成器,而不是保留额外的内存):
>>> from itertools import chain >>> l = [(1,2,3),(4,5,6)] >>> list(chain.from_iterable(l)) [1, 2, 3, 4, 5, 6]