如何将每个子列表加入 Python 中的单个字符串?

Posted

技术标签:

【中文标题】如何将每个子列表加入 Python 中的单个字符串?【英文标题】:How to join every sublist to a single string in Python? 【发布时间】:2017-06-14 23:54:38 【问题描述】:

MWE:这是列表:

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

我想要的列表是:

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

我该怎么做,请帮忙。

【问题讨论】:

到目前为止你尝试了什么? 【参考方案1】:

可以通过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。详情请参考以下链接。

for python2

for python3

【讨论】:

【参考方案2】:
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]

【讨论】:

【参考方案3】:

您可以使用列表推导:

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 的方式是列表推导式。

【讨论】:

以上是关于如何将每个子列表加入 Python 中的单个字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python 列表理解/字典将每一列打印为唯一变量

在 Python 中将具有不同类型的项目列表作为字符串加入

python切片(获取一个子列表(数组))

Python:将每一行单词放在一个列表中[重复]

python中有没有办法将存储在列表中的正则表达式模式列表应用于单个字符串?

将二进制字符串拆分为长度为 n 的子字符串,然后解码 R 中的每个子字符串