代码之家  ›  专栏  ›  技术社区  ›  prashantgpt91

在python中将str转换为list[重复]

  •  0
  • prashantgpt91  · 技术社区  · 8 年前

    我有一个像这样的python str对象,我想把它转换成一个列表

    l = "['Incorrect password.$', 'Login failed']"  --- type <str>
    

    预期产量

    l = ['Incorrect password.$', 'Login failed']  ---- type <list>
    

    试验1:

    p = list(l)
    

    它使 l ['[', "'", 'I', 'n', 'c', 'o', 'r', 'r', 'e', 'c', 't', ' ', 'p', 'a', 's', 's', 'w', 'o', 'r', 'd', '.', '$', "'", ',', ' ', "'", 'L', 'o', 'g', 'i', 'n', ' ', 'f', 'a', 'i', 'l', 'e', 'd', "'", ']']

    试验2:

      l.split(',')
    

    第二种方法不太好,因为list元素本身可能包含逗号。

    我应该如何继续? 任何提示都将不胜感激。

    2 回复  |  直到 8 年前
        1
  •  6
  •   Rakesh    8 年前

    使用 ast 单元

    import ast
    l = "['Incorrect password.$', 'Login failed']"
    print l, type(l)
    l =  ast.literal_eval(l)
    print l, type(l)
    

    输出:

    ['Incorrect password.$', 'Login failed'] <type 'str'>
    ['Incorrect password.$', 'Login failed'] <type 'list'>
    
        2
  •  1
  •   Xantium    8 年前
    eval(l)
    

    eval() 是一个内置函数,用于计算代码。