转换字符串元组的元组
问题描述:
我有一个输入文件具有以下格式:转换字符串元组的元组
[(1,1),(2,1)], 'add', 11
[(1,2),(1,3)], 'div', 2
[(3,1),(4,1),(3,2),(4,2)], 'times', 240
[(2,2),(2,3)], 'minus', 3
.
.
每一行是一个元组,我想创建。如何将每个字符串行转换为一个元组。
对于例如:
line: string "[(1,1),(2,1)], 'add', 11" ---------> tuple: [ [(1,1),(2,1)], 'add', 11]
到目前为止,我想:
tuples = []
for line in file:
tuples.append((line,))
但我得到一个字符串皈依
[("[(1,1),(2,1)], 'add', 11\n",), ("[(1,2),(1,3)], 'div', 2\n",), ("[(3,1),(4,1),(3,2),(4,2)], 'times', 240\n",), ("[(2,2),(2,3)], 'minus', 3",)]
答
您可以使用ast.literal_eval
为:
>>> import ast
>>> my_string = "[(1,1),(2,1)], 'add', 11"
>>> ast.literal_eval(my_string)
([(1, 1), (2, 1)], 'add', 11)
作为每ast.literal_eval(node_or_string)
document:
安全评估的表达式节点或Unicode或含有一个Python字面或容器显示Latin-1的编码的字符串。提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,字典,布尔值和无。
打我吧:) – brianpck