【问题标题】:Convert 2 dimensional list into a string将二维列表转换为字符串
【发布时间】:2026-01-03 09:40:01
【问题描述】:

我有一个如下所示的二维列表:

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

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

【问题讨论】:

    标签: python string list nested-lists string-concatenation


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      使用str.joinsum

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

      【讨论】:

        【解决方案3】:

        您在子列表中的每个项目之间创建一个使用字符“,”的字符串,并且每个子列表将被扭曲分隔,例如使用另一个符号,例如“_”。 例如:

        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】:

          chain的解决方案:

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

            • 为什么我不能将字符串分配给变量?
            • @naijboy90 可以,只需执行s = ''.join(x for sl in l for x in sl),这会将字符串分配给变量s