如何将表示元组的字符串列表转换为整数元组?

时间:2018-09-29 19:06:39

标签: python python-2.7

我想转换

list_int=['(2,3)','(3,4)']

至整数坐标点:

[(2, 3), (4, 8)]

我尝试了这段代码

list_int=['(2,3)','(3,4)']
for x in list_int:
    con= int(x0 for x in list_int)
    print con

我收到此错误

  

TypeError:int()参数必须是字符串或数字,而不是'generator'

我是Python的新手。

2 个答案:

答案 0 :(得分:3)

您可以使用ast.literal_eval

from ast import literal_eval

list_int=['(2,3)','(3,4)'] 

converted = [literal_eval(tup) for tup in list_int]

# [(2, 3), (3, 4)]

摘自ast.literal_eval的文档:

  

安全地评估表达式节点或包含Python的字符串   文字或容器显示。提供的字符串或节点只能   由以下Python文字结构组成:字符串,字节,   数字,元组,列表,字典,集合,布尔值和无。

     

这可用于安全地评估包含Python的字符串   来自不受信任来源的值,而无需解析值   自己。它不能评估任意复杂   表达式,例如涉及运算符或索引。

答案 1 :(得分:0)

我将删除开始和结束括号,拆分每个字符串,然后将每个元素转换为int

result = [[int(x) for x in s[1:-1].split(",")] for s in list_int]