将看起来像列表的字符串转换为真实列表 - python

alv*_*vas 5 python string int tuples list

我的输入文件包含如下所示的行:

[(0, 1), (1, 3), (2, 1), (3, 1), (4, 1)]
[(0, 1, 6), (1, 3,7), (3, 1,4), (3, 1,3), (8, 1,2)]
[1,2,3,5,3]
Run Code Online (Sandbox Code Playgroud)

没有字母,没有小数,只有整数和元组中元素的数量是一致的.

如何将它们变成真正的元组列表/ int列表?

Tim*_*ker 14

Python附带电池 - 这个问题通过ast.literal_eval()以下方式解决:

>>> import ast
>>> ast.literal_eval("[(0, 1), (1, 3), (2, 1), (3, 1), (4, 1)]")
[(0, 1), (1, 3), (2, 1), (3, 1), (4, 1)]
>>> ast.literal_eval("[(0, 1, 6), (1, 3,7), (3, 1,4), (3, 1,3), (8, 1,2)]")
[(0, 1, 6), (1, 3, 7), (3, 1, 4), (3, 1, 3), (8, 1, 2)]
>>> ast.literal_eval("[1,2,3,5,3]")
[1, 2, 3, 5, 3]
Run Code Online (Sandbox Code Playgroud)

  • @alvas:请注意,`ast.literal_eval`是安全的,而'eval`则不是. (3认同)