如何将每个子列表加入 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 列表理解/字典将每一列打印为唯一变量