给定从 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)
这也适用于列表、字典、数字等。
关于python - 在python中将包装为字符串的元组转换为元组的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24051831/