在列表列表中合并嵌套列表
我有一个非常大的格式列表:
a = [[[5],[3]],[[4],[5]],[[6],[7]]]
我想从最里面的列表中取出列表中的每个元素。输出应该是:
output = [[5,3],[4,5],[6,7]]
我尝试了一些方法,例如reduce(operator.concat, a)),sum(b, []))和reduce(lambda x,y: x+y,a)。但他们没有产生我想要的。我有大量数据,如果可能,我不想使用 for 循环。你知道这个的另一种选择吗?
回答
您可以使用itertools.chain与列表理解为:
>>> from itertools import chain
>>> a = [[[5],[3]],[[4],[5]],[[6],[7]]]
>>> [list(chain(*l)) for l in a]
[[5, 3], [4, 5], [6, 7]]
有关更多详细信息,请参阅“itertools.chain()”文档。