将包裹为字符串的元组转换为python中的元组的简单方法

1 python tuples

鉴于'(1,2,3)'从csv读取的字符串,我如何将其转换为元组(1,2,3)?我尝试tuple('(1,2,3)')了,('(', '1', ',', '2', ',', '3', ')')而不是(1,2,3).我认为这可能是合理的,因为int('1')返回1.

现在的代码

tuple(map(int, re.split('[(),]', '(1,2,3)')[1:-1]))
Run Code Online (Sandbox Code Playgroud)

通过返回['', '1', '2', '3', ''],修剪边缘,将条目转换为整数,最后将结果列表转换为元组来工作.我想知道是否有一种更简单的方法可以做到这一点,也许类似于int('1').

编辑:如果我有一个包含逗号或括号中的字符串的弦乐元组,则此解决方案将失败.我想要一些更强大的东西.

GWW*_*GWW 11

使用ast.literal_eval,比它更安全eval

import ast
ast.literal_eval('(1,2,3)')
Run Code Online (Sandbox Code Playgroud)

结果:

(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

这也适用于列表,词典,数字等.