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

标签 python tuples

给定从 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/

相关文章:

python - Nginx、uwsgi、django 和上游在 get/post 上超时

typescript - 如何从对象元组创建对象类型?

python - 将文件写入元组列表

javascript - 如何在 JavaScript 中处理元组?

c++ - 参数包困惑

python - 如何正确部署需要服务器回调的 Bokeh 应用程序?

python - Jax 找不到静态参数

python - 我们如何才能使 __future__ 进口全局化?

python - 打印元组中的每 2 个元素

python - 为什么 spritecillide 在 pygame 中工作不正常