преобразовать список строк, которые я хотел бы преобразовать в список кортежей - PullRequest
0 голосов
/ 08 марта 2011

У меня есть список строк, которые я хотел бы преобразовать в список кортежей.Ниже приведен пример.

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

для преобразования в.

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

есть идеи?

Ответы [ 3 ]

5 голосов
/ 08 марта 2011
[ast.literal_eval(x) for x in L]
1 голос
/ 08 марта 2011
map(ast.literal_eval, list_of_tuple_strings)

В отличие от eval, ast.literal_eval будет оценивать только литералы, а не вызовы функций, поэтому он намного более безопасен.

0 голосов
/ 08 марта 2011

Думаю, вам нужна функция 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  ')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...