如何将已经看起来像列表的字符串转换为列表?

发布于 2021-01-29 17:11:23

我有一个已经看起来像列表的字符串:

activeStateString = "['11', '20', '0']"

我想将此定义为Python中的列表。我知道我可以开始过滤并将其分解并重建一个新列表,但是随后我必须进入循环等。Python中是否有一种方法可以立即将该字符串从“字符串”提升为列表?因此,一旦转换:

activeStateString -> activeStateList

我得到:

11

对于:

print activeStateList[0]

谢谢

(Python 2.6)

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用ast.literal_eval()解释包含了Python文字字符串:

    >>> import ast
    >>> ast.literal_eval("['11', '20', '0']")
    ['11', '20', '0']
    

    这样比较安全,因为使用eval()它将拒绝解释任何 文字值的东西:

    >>> eval("__import__('sys').version")
    '2.7.5 (default, Oct 28 2013, 20:45:48) \n[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)]'
    >>> ast.literal_eval("__import__('sys').version")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python2.7/ast.py", line 80, in literal_eval
        return _convert(node_or_string)
      File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python2.7/ast.py", line 79, in _convert
        raise ValueError('malformed string')
    ValueError: malformed string
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看