【问题标题】:How to join every sublist to a single string in Python?如何将每个子列表加入 Python 中的单个字符串?
【发布时间】:2017-01-29 20:18:34
【问题描述】:

MWE:这是列表:

L=[['1', '1', '0', '0', '0'],['1', '1', '1', '1', '0'],['0', '0', '1', '1', '0']]

我想要的列表是:

 D=['11000','11110','00110'] 

我该怎么做,请帮忙。

【问题讨论】:

  • 到目前为止你尝试了什么?

标签: python string python-2.7 list join


【解决方案1】:
L = [['1', '1', '0', '0', '0'],['1', '1', '1', '1', '0'],['0', '0', '1', '1', '0']]
D = [''.join(sub_list) for sub_list in L]

【讨论】:

    【解决方案2】:

    您可以使用列表推导:

    L = [
        ['1', '1', '0', '0', '0'],
        ['1', '1', '1', '1', '0'],
        ['0', '0', '1', '1', '0']
        ]
    
    D = [''.join(l) for l in L]
    

    或地图功能:

    D = map(''.join, L) # returns a generator in python3, cast it to list to get one
    

    请注意,最 Pythonic 的方式是列表推导式。

    【讨论】:

      【解决方案3】:

      可以通过reduce轻松制作平面列表。

      所有你需要使用 initializer - reduce 函数中的第三个参数。

      reduce(
         lambda result, _list: result.append(''.join(_list)) or result, 
         L, 
         [])
      

      或者map和reduce结合使用,

      import operator
      map(lambda l: reduce(operator.iconcat, l), L)
      

      以上代码适用于 python2 和 python3,但您需要将 reduce 模块导入为 from functools import reduce。详情请参考以下链接。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-20
        • 1970-01-01
        • 1970-01-01
        • 2012-08-14
        • 1970-01-01
        • 1970-01-01
        • 2021-10-04
        • 1970-01-01
        相关资源
        最近更新 更多