【发布时间】:2026-01-03 09:40:01
【问题描述】:
我有一个如下所示的二维列表:
[['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']]
我想将此列表转换为字符串。有人有想法吗?
【问题讨论】:
标签: python string list nested-lists string-concatenation
我有一个如下所示的二维列表:
[['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']]
我想将此列表转换为字符串。有人有想法吗?
【问题讨论】:
标签: python string list nested-lists string-concatenation
你可以使用numpy数组来获取结果:
import numpy as np
arr = np.array([['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']])
arr = arr.flatten()
result = ''.join(i for i in arr)
print(result) #'ORM0.0ORM0.1:=M0.2'
【讨论】:
使用str.join 和sum:
>>> l = [['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']]
>>> '.'.join(sum(l, []))
ORM00.ORM0.1:=M0.2
【讨论】:
您在子列表中的每个项目之间创建一个使用字符“,”的字符串,并且每个子列表将被扭曲分隔,例如使用另一个符号,例如“_”。 例如:
l = [['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']]
l_string = ""
for sublist in l:
for item in sublist:
l_string += item + ","
l_string += "_"
print(l_string) #"OR,M,0.0,_OR,M,0,1,_:=,M,0.2,_"
如果这是循环的最后一轮,您可以检查每个 for 循环,如果是,则不要添加符号(“,”或“_”)。
【讨论】:
chain的解决方案:
from itertools import chain
m = [['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']]
"".join(chain(*m))
【讨论】:
使用str.join() 和生成器来展平列表:
>>> l = [['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']]
>>> ''.join(x for sl in l for x in sl)
'ORM0.0ORM0.1:=M0.2'
【讨论】:
s = ''.join(x for sl in l for x in sl),这会将字符串分配给变量s。