exe*_*rgy 3 python tuples list
我有一个看起来像这样的字符串:
a = '((1,2),(2,3))'
Run Code Online (Sandbox Code Playgroud)
我想访问它:
a[0] = (1,2)
a[0][1] = 2
Run Code Online (Sandbox Code Playgroud)
我想以嵌套元组的形式使用它。
然而我所做的一切似乎都不起作用。
如果它不是字符串,它就可以工作。然而,我从另一个来源获取字符串输入,这就是为什么我尝试做这样的事情。
a = ((1,2),(2,3))
print a[0][1]
# prints 2 ..it works fine
Run Code Online (Sandbox Code Playgroud)
编辑:如果我过于简化了我的问题,我很抱歉。我的实际数据如下:
a = '((243, SEA, ATL, 2013-08-12 05:50:00), (243, ATL, LAX, 2013-08-22 12:30:00),(243, LAX, SEA, 2013-05-29 18:10:00))'
Run Code Online (Sandbox Code Playgroud)
这是我正在读的字符串。我想用括号 (),() 将其分开,以便我可以按时间顺序对数据进行排序并重新排列。
关于如何去做有什么想法吗?
liteal_eval 确实适用于我之前发布的示例数据。但它不适用于上述情况。
我现在这样做的方法是:将 '),(' 替换为 ';' 并删除所有括号 '(',')',然后用 ';' 分割
有更快/更好的方法吗?
ast模块的literal_eval方法就是您正在寻找的:
>>> import ast
>>> a = '((1,2),(2,3))'
>>> b = ast.literal_eval(a)
>>> b[0]
(1, 2)
>>> b[0][1]
2
Run Code Online (Sandbox Code Playgroud)