将二维列表转换为字符串

时间:2019-12-12 14:35:50

标签: python string list

我有一个二维列表,看起来像这样:

[['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']]

我想将此列表转换为字符串。有人知道吗?

5 个答案:

答案 0 :(得分:3)

使用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'

答案 1 :(得分:1)

显示chain的解决方案:

from itertools import chain
m = [['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']]
"".join(chain(*m))

答案 2 :(得分:1)

使用str.joinsum

>>> l = [['OR', 'M', '0.0'], ['OR', 'M', '0.1'], [':=', 'M', '0.2']]
>>> '.'.join(sum(l, []))
ORM00.ORM0.1:=M0.2

答案 3 :(得分:0)

您创建一个在子列表的每个项目之间使用字符','的字符串,并且每个子列表将以诸如'_'之类的另一个符号变形。 例如:

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循环中检入,如果不是,则不要添加符号(“,”或“ _”)。

答案 4 :(得分:0)

您可以使用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'