我有一些看起来像这样的字符串:
"(8, 12.25), (13, 15), (16.75, 18.5)"
Run Code Online (Sandbox Code Playgroud)
我想将它们中的每一个转换为python数据结构.优选地,包含一对浮点值的元组的列表(或元组).
我可以做到这一点eval("(8, 12.25), (13, 15), (16.75, 18.5)"),给我一个元组元组,但我不认为天真评估外部信息将是一个明智的决定.
所以我想知道优雅的pythonic解决方案是什么样的.
我的要求是将一个元组作为命令行参数传递
--data (1,2,3,4)
Run Code Online (Sandbox Code Playgroud)
我试图使用该argparse模块,但如果我像这样传递它接收为字符串'(1,2,3,4)'.我试图通过给type=tuple了argparse.add_argument,但没有用在这里.
我是否必须添加一个新类型并将其传递给类型参数add_argument?
更新
我ast.literal_eval根据答案尝试了.感谢那.但它在结果中给出了空格,如下所示.
(1,2,3,4)
<type 'str'>
(1, 2, 3, 4)
<type 'tuple'>
Run Code Online (Sandbox Code Playgroud) 我需要将一个字符串转换为Python '(2,3,4),(1,6,7)'中的元组列表[(2,3,4),(1,6,7)].我想要分开',',然后使用for循环并将每个元组追加到一个空列表.但我不太清楚该怎么做.有提示,有人吗?