首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将string-tuple转换为tuple

将string-tuple转换为tuple
EN

Stack Overflow用户
提问于 2016-12-14 19:42:08
回答 1查看 3.4K关注 0票数 3

我有一个输入文件,格式如下:

代码语言:javascript
复制
[(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)

到目前为止,我试过:

代码语言:javascript
复制
tuples = []
for line in file:
    tuples.append((line,))

但是我得到了一个字符串转换

代码语言:javascript
复制
 [("[(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",)]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-14 19:44:09

您可以将ast.literal_eval用作:

代码语言:javascript
复制
>>> 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文字结构:字符串、数字、元组、列表、迪克、布尔和无。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41150857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档