2013-06-01 3 views
1

я должен создать матрицу (или массив) из строки файла, как это:Python - Создание матрицы из строки

>>>print Qval 
[1*10**4,0,0,0],[0,1,0,0],[0,0,1*10**3,0], [0,0,0,1] 
>>>print type(Qval) 
<type 'str'> 

Я должен получить матрицу таким образом, потому что в моем Tkinter GUI I необходимо ввести такое значение (часть интерфейса: полевая метка = значение по умолчанию):

Q-Matrix = [1 * 10 ** 4,0,0,0], [0,1,0, 0], [0,0,1 * 10 ** 3,0], [0,0,0,1]

Я получаю строку Qval из моего интерфейса, как это:

Qval=vars[13].get() 

Есть ли способ для этого?

Спасибо.

ответ

6
>>> ast.literal_eval('[1e4, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1e3, 0], [0, 0, 0, 1]') 
([10000.0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1000.0, 0], [0, 0, 0, 1]) 
+0

отлично работает, спасибо большое! – Baekel

0

вы можете использовать встроенную функцию Eval так:

a ="[1*10**4,0,0,0],[0,1,0,0],[0,0,1*10**3,0], [0,0,0,1]" 
mat = eval(a) 
+1

'ast.literal_eval()' безопаснее. –

Смежные вопросы