我有一个格式的字符串 -
" ( (4, 4), (11, 23), (8, 2), (12, 4), (7, 9) ) "
将字符串转换为有意义的整数元组的最佳方法是什么?
可以说fun(s)
是一个函数,它将string
s
作为参数并返回list
tuple
的{{1}}
实施例
a
答案 0 :(得分:1)
对于这种事情,ast.literal_eval
比内置eval
更受欢迎,特别是如果字符串可能来自未知来源。调用接口与eval
:
print(list(ast.literal_eval(s)))
但是,ast.literal_eval
将防止可能调用系统服务的代码插入(例如可能删除文件等的代码),并且只接受文字值。
答案 1 :(得分:-2)
您可以使用Python的内置eval()函数。
在这种情况下,您可以像这样编写代码:
s = " ( (4, 4), (11, 23), (8, 2), (12, 4), (7, 9) ) "
print(list(eval(s)))