【问题标题】:How can I read a string in a file formated as a list into a list in Python? [duplicate]如何将格式为列表的文件中的字符串读入 Python 中的列表? [复制]
【发布时间】:2019-03-01 22:37:07
【问题描述】:

我有一个格式化为文件中列表列表的字符串。如何将其作为列表放入 Python 中的变量中?

例如数据字符串.txt

with open('data-string.txt') as f:
    str = f.read()

str = "[[1, 2, 3], [2, 3, 4], [3, 4, 5]]"

是等价的。 我怎样才能把它变成一个真正的 Python 列表?我已经研究过使用多个分隔符进行拆分,但如果这是正确的方式,我无法正确设置它。

【问题讨论】:

    标签: python


    【解决方案1】:

    您可以使用ast.literal_eval() 进行投标:

    import ast
    s = ast.literal_eval("[1,2,3]")
    s == [1,2,3]
    

    【讨论】:

    • 太棒了。以前从未听说过抽象语法树。谢谢!
    【解决方案2】:

    在某些情况下您可以使用json,但@Bharel 的答案会更好

    import json
    
    with open('data-string.txt') as f:
        lst = json.load(f)
        print(lst)  # [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
    

    【讨论】:

    • 这实际上也解决了我的目的。谢谢。
    【解决方案3】:

    这个怎么样:

    // convert original string to type list
    str1 = list("[[1, 2, 3], [2, 3, 4], [3, 4, 5]]")
    
    // create a new string using the following, which converts same to a 3 x 3 list
    str2 = ''.join(str(e) for e in str1)
    
    // prints out as [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
    
    // https://stackoverflow.com/questions/5618878/how-to-convert-list-to-string
    

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      相关资源
      最近更新 更多