[英]Convert string-tuple to a tuple
我有一个格式如下的输入文件:
[(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",)]
您可以将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)
文档:
安全地计算包含 Python 文字或容器显示的表达式节点或 Unicode 或 Latin-1 编码字符串。 提供的字符串或节点只能由以下 Python 文字结构组成:字符串、数字、元组、列表、字典、布尔值和无。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.