2015-12-08 2 views
3

Если у меня есть строка, которая выглядит как кортеж, как я могу сделать ее в кортеж?Преобразование строки кортежа в кортеж

s = '(((3,),(4,2),(2,)),((1,),(2,4),(2,)))' 

и я хочу сделать его в кортеж, содержащий другие кортежи.

t = tuple((((3,),(4,2),(2,)),((1,),(2,4),(2,)))) 

не работает, потому что это делает даже ( как элемент в кортеже.

+1

Пожалуйста [принимать] (http://meta.stackexchange.com/questions/5234) ответ, если вы думаете, это решит вашу проблему. Это будет сообщество в целом, чтобы признать правильное решение. Это можно сделать, нажав зеленую галочку рядом с ответом. См. Это [изображение] (http://i.stack.imgur.com/uqJeW.png) для справки. Приветствия. –

ответ

10

Вы должны использовать ast.literal_eval:

from ast import literal_eval 
s = '(((3,),(4,2),(2,)),((1,),(2,4),(2,)))' 

t = literal_eval(s) 
print(t) 
print(type(t)) 
(((3,), (4, 2), (2,)), ((1,), (2, 4), (2,))) 
<class 'tuple'> 
Смежные вопросы