我想转换
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的新手。
答案 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]