Python - 从字符串创建矩阵

时间:2013-06-01 12:45:43

标签: python string interface matrix tkinter

我必须从字符串文件中创建一个矩阵(或数组),如下所示:

>>>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中我必须输入这样的值(接口的一部分:field label = default value):

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()

有没有正确的方法呢?

感谢。

2 个答案:

答案 0 :(得分: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])

答案 1 :(得分: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)