如何明智地连接多个列表元素
Posted
技术标签:
【中文标题】如何明智地连接多个列表元素【英文标题】:How to concatenate multiple lists element wise 【发布时间】:2017-04-16 05:29:05 【问题描述】:输入:
l1 = ['a', '', '', '']
l2 = ['', 'b', '', '']
l3 = ['', '', 'c', '']
l4 = ['', '', '', 'd']
预期输出:
['a', 'b', 'c', 'd']
我试过了
list(map(str.__add__, l1, l2, l3, l4))
看起来str.__add__
不接受两个以上的列表对象。
任何解决方法?
编辑:基于 Jim Fasarakis-Hilliard 的评论。
l1 = ['a', '1', '', '']
l2 = ['', 'b', '2', '']
l3 = ['', '', 'c', '']
l4 = ['', '', '', 'd']
预期输出:
['a', '1b', '2c', 'd']
谢谢
【问题讨论】:
filter(None, l1+l2+l3+l4)
?
如果存在其他条目,输出应该是什么?
它不应该连接其他条目
【参考方案1】:
看来你需要zip
[''.join(x) for x in zip(l1, l2, l3, l4)]
# ['a', 'b', 'c', 'd']
对于更新后的输入:
[''.join(x) for x in zip(l1, l2, l3, l4)]
# ['a', '1b', '2c', 'd']
【讨论】:
以上是关于如何明智地连接多个列表元素的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python 中明智地组合两个 numpy 数组元素?