2011-03-08 69 views
0

我有我想要转换为元组列表的字符串列表。下面是一个例子。转换我想要转换为元组列表的字符串列表

['(0, "ass\'")', "(-1, '\\n  print self.amount')", "(0, '\\n\\n ')"] 

要转换成。

[(0, "ass\'"), (-1, '\\n  print self.amount'), (0, '\\n\\n ')] 

有什么想法吗?

回答

5
[ast.literal_eval(x) for x in L] 
0

的函数eval是你需要什么,我想,但要小心它的使用:

>>> l = ['(0, "ass\'")', "(-1, '\\n  print self.amount')", "(0, '\\n\\n ')"] 

>>> map(eval, l) 
[(0, "ass'"), (-1, '\n  print self.amount'), (0, '\n\n ')] 
+0

'eval'不安全,但'literal_eval'是。 – 2011-03-08 09:01:23

+0

我不知道这个,谢谢! – Emmanuel 2011-03-08 16:30:54

1
map(ast.literal_eval, list_of_tuple_strings) 

不像eval,ast.literal_eval只会评价文字,而不是函数调用,所以它更安全。