Python模拟MatLab数据结构

Pet*_*ves 2 python matlab dictionary numpy list

我最近跳出了矩阵实验室窗口,我正在尝试让Python/Numpy/Scipy做我以前在MatLab中做的事情.到目前为止它似乎真的很好,但我正在努力的一件事就是在MatLab中找到类似于数据结构的东西.

我想编写一个用于读取.xml文件的通用代码,并根据它们是字符串,标量或矩阵自动将变量分配到数据结构中.典型的xml文件将被拆分为:

<material>
<id>
1
<\id>
<E>
17e4
<\E>
<var 2>
'C:\data file path'
<\var 2>
<var 3>
[1 2;3 4]
<\var 3>
<\material>
<material>
<id>
2
<\id>
<var 1>
17e4
<\var 1>
<var 2>
'C:\data file path'
<\var 2>
<var 3>
[1 2;3 4]
<\var 3>
<\material>
...
etc
Run Code Online (Sandbox Code Playgroud)

在Matlab中我会创建一个这样的数据结构:

Materials.1.E=17e4
Materials.1.var2='C:\data file path'
Materials.1.var3=[1 2;3 4]
Materials.2.E=17e4
Materials.2.var2='C:\data file path'
Materials.2.var3=[1 2;3 4]
Run Code Online (Sandbox Code Playgroud)

如果python中的列表可以是2D(所以我可以在一行中包含每个材料的所有变量),或者字典可以包含多个图层或者可以包含列表,它们是完美的但是我找不到我的内容想要此刻!

任何帮助都感激不尽!

Mol*_*lly 7

正如Shai所说,你可以使用一个词典列表.对于您的示例,这将看起来像这样:

Materials = []

Materials.append({'E': 17e4, 'var2': 'C:\\data file path', 'var3': [1, 2, 3, 4]})
Materials.append({'E': 17e4, 'var2': 'C:\data file path', 'var3':[1, 2,3, 4]})

print Materials[0]['var2']
Run Code Online (Sandbox Code Playgroud)

打印:

C:\data file path
Run Code Online (Sandbox Code Playgroud)