使用Python压缩多个列表的未知列表

加百列

我需要做的事情与这里的要求非常相似,您将如何在Python中压缩未知数量的列表?,但在更一般的情况下。

我有以下设置:

a = [['a', '0', 'b', 'f', '78']]
b = [['3', 'w', 'hh', '12', '8']]
c = [['g', '7', '1', 'a0', '9'], ['45', '4', 'fe', 'h', 'k']]

我需要将这些列表压缩在一起以获得:

abc =  [['a', '3', 'g', '45'], ['0', 'w', '7', '4'], ['b', 'hh', '1', 'fe'], ['f', '12', 'a0', 'h'], ['78', '8', '9', 'k']]

我可以用它生成:

zip(a[0], b[0], c[0], c[1])

但是列表a,b,c包含许多子列表,这些子列表会因连续运行而有所不同,因此这种“手动”扩展它们的方法将行不通。

我能得到的最接近的是:

zip(a[0], b[0], *c)

由于*不允许将列表解包到除最后一个位置之外的任何其他位置,因此,“理想”表达式为:

zip(*a, *b, *c)

不起作用。

如何将多个列表与未知数量的子列表压缩在一起?

以色列温特曼

itertools.chain 进行救援:

import itertools

z = list(zip(*itertools.chain(a, b, c)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章