繁体   English   中英

在python中连接多个列表列表

[英]Concatenate multiple lists of lists in python

我有一个python中的多个列表列表:

a = [[[0,1,2], [10,11,12]],
     [[3,4,5], [13,14,15]]]

我想将所有第一个列表合并在一起,第二个列表合并在一起,等等:

final = [[0,1,2,3,4,5],
         [10,11,12,13,14,15]]

我得到的最远的是尝试解压缩外部列表:

zip(*a) = [([0,1,2], [3,4,5]), 
           ([10,11,12], [13,14,15])]

我想一个人可以循环通过这些然后将每个链接在一起,但这看起来很浪费。 什么是pythonic方法来解决这个问题?

注意 :每个“行”中可能有两个以上的子列表。

zip()itertools.chain()可以做到:

In [1]: from itertools import chain

In [2]: [list(chain(*lists)) for lists in zip(*a)]
Out[2]: [[0, 1, 2, 3, 4, 5], [10, 11, 12, 13, 14, 15]]

reduce函数非常适合这类问题:

[reduce((lambda x,y: x[i]+y[i]), a) for i,_ in enumerate(a)]

结果:

[[0, 1, 2, 3, 4, 5], [10, 11, 12, 13, 14, 15]]

此代码读取:对于每个索引i ,收集所有的i个的元件的物品a在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM