Skip to main content
 首页 » 编程设计

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

2025年05月04日26sharpest

给定从 csv 中读取的字符串 '(1,2,3)',我如何将其转换为元组 (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])) 

通过返回 ['', '1', '2', '3', ''],修剪边缘,将条目转换为整数,最后将结果列表转换为一个元组。我想知道是否有更简单的方法来执行此操作,也许类似于 int('1')。

编辑:如果我有一个包含带逗号或圆括号的字符串的字符串元组,此解决方案将失败。我想要更坚固的东西。

请您参考如下方法:

使用ast.literal_eval , 它比 eval

更安全
import ast 
ast.literal_eval('(1,2,3)') 

结果:

(1, 2, 3) 

这也适用于列表、字典、数字等。