更多“pythonic”方式将列表列表扩展到一个联合列表

时间:2013-04-20 18:00:04

标签: python python-3.x python-3.2

这是与python语法相关的问题......是否有更优雅的更多pythonic 这样做的方式:

>>> test = [[1,2], [3,4,5], [1,2,3,4,5,6]]
>>> result = []
>>> for i in test: result += i
>>> result
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6]

将多个列表(存储在另一个列表中)加入一个长列表?

1 个答案:

答案 0 :(得分:8)

使用itertools.chain.from_iterable() classmethod:

from itertools import chain

result = list(chain.from_iterable(test))

如果你需要做的只是遍历链式列表,那么不要将它实现为list(),只需循环:

for elem in chain.from_iterable(test):
    print(elem, end=' ')   # prints 1 2 3 4 5 1 2 3 4 5 6

您也可以直接在itertools.chain上使用参数解包:

for elem in chain(*test):

但只能使用较小的列表。