我有一个输入文件,格式如下:
[(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
...每一行都是我想要创建的元组。如何将每个字符串行转换为元组?
例如,应该将行string "[(1,1),(2,1)], 'add', 11"转换为元组:([(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",)]发布于 2016-12-14 19:44:09
您可以将ast.literal_eval用作:
>>> import ast
>>> my_string = "[(1,1),(2,1)], 'add', 11"
>>> ast.literal_eval(my_string)
([(1, 1), (2, 1)], 'add', 11)根据 document
安全地计算包含Python、文字或容器显示的表达式节点或Unicode或拉丁文编码字符串。提供的字符串或节点可能只包含以下Python文字结构:字符串、数字、元组、列表、迪克、布尔和无。
https://stackoverflow.com/questions/41150857
复制相似问题