2011-03-08 66 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只會評價文字,而不是函數調用,所以它更安全。