【问题标题】:Python Casting Nested String of Lists to ListPython将列表的嵌套字符串转换为列表
【发布时间】:2017-11-17 02:04:53
【问题描述】:

有人知道将给定列表转换为所需格式的简单方法吗?

给定:

['[[2.1, 3.7], [5.5, -1.3]]']

所需格式:

[[2.1, 3.7], [5.5, -1.3]]

提前致谢

【问题讨论】:

    标签: python python-3.x casting abstract-data-type


    【解决方案1】:

    试试这个:

    import ast
    lst = ['[[2.1, 3.7], [5.5, -1.3]]']
    ast.literal_eval(lst[0])
    => [[2.1, 3.7], [5.5, -1.3]]
    

    【讨论】:

      【解决方案2】:

      我认为json.loads 非常适合这个特定的,即:

      import json
      
      lst = ['[[2.1, 3.7], [5.5, -1.3]]']
      lst = [json.loads(lst[0])]
      print(lst)
      

      【讨论】:

        【解决方案3】:

        看起来你有一个包含单个元素的列表,它是一个字符串,你想要评估字符串并返回它,丢弃外部列表。如果是这样,那么您可以使用来自astliteral_eval 来安全地评估表达式:

        import ast
        s = ['[[2.1, 3.7], [5.5, -1.3]]']
        t = s[0]
        ast.literal_eval(t)
        

        计算结果为:

        [[2.1, 3.7], [5.5, -1.3]]
        

        【讨论】:

          【解决方案4】:

          这应该很容易做到:

          eval(x[0])
          

          【讨论】:

          • eval() 可能是邪恶的。是的,在这种情况下没问题,但仍应使用 ast.literal_eval() 代替
          猜你喜欢
          • 1970-01-01
          • 2016-02-08
          • 2015-04-03
          • 2021-11-25
          • 2019-04-24
          • 1970-01-01
          • 1970-01-01
          • 2014-06-04
          • 1970-01-01
          相关资源
          最近更新 更多