我无法以python的形式获取我的数据。与namedtuple嵌套
基本上我有一个程序,读取二进制数据,并提供绘图和分析上述数据的功能。
我的数据有主标题和子标题,可以是任何数量不同的数据类型。
我希望能够访问像我的数据,例如:
>>> a = myDatafile.readit()
>>> a.elements.hydrogen.distributionfunction
(a big array)
>>> a.elements.hydrogen.mass
1
>>> a.elements.carbon.mass
12
,但我不知道原子,直到运行时的名称。
使用namedtuple我已经在所有的原子名称读出之后我尝试过,例如:
self.elements = namedtuple('elements',elementlist)
哪里元素列表是例如(“氢”,“碳”)的字符串列表。但问题是我不能嵌套使用这些可例如:
for i in range(0,self.nelements):
self.elements[i] = namedtuple('details',['ux','uy','uz','mass','distributionfunction'])
,然后可以通过访问值例如
self.elements.electron.distributionfunction.
也许我这样做是完全错误的。我对Python非常不熟悉。我知道如果我不想动态地命名变量,这很容易做到。
我希望我已经明确自己想要达到的目标!
能否请你告诉我们的样本数据? – Abhijit
@abhijit 它相当复杂,可以作为二进制数据读入。 化学元素的数量是从文件变量到文件但是每个元件具有: “的名称(字符串) 质量(双精度) 电荷(双精度) 三维速度网格(3 * N *双精度) 相空间网格(n^6 *双精度)' 我有一个读取二进制文件并将其读入变量的类,但是我无法创建可以按照我所描述的方式访问的数据结构。 –