【问题标题】: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) ?
  • 如果存在其他条目,输出应该是什么?
  • 它不应该连接其他条目

标签: python python-2.7 list python-3.x concatenation


【解决方案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']

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 2017-11-03
    • 1970-01-01
    • 2018-05-13
    • 2021-08-23
    相关资源
    最近更新 更多