У меня проблемы с получением данных в той форме, в которой я хотел бы в python.
В основном у меня есть программа, которая считывает двоичные данные и предоставляет функции для построения и анализа этих данных.
В моих данных есть главные заголовки, а затем подзаголовки, которые могут быть любым количеством различных типов данных.
Я хотел бы иметь доступ к своим данным, например:
>>> 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)
Где elementlist - это список строк, например ('водород', 'углерод'). Но проблема в том, что я не могу вложить их, используя, например:
for i in range(0,self.nelements):
self.elements[i] = namedtuple('details',['ux','uy','uz','mass','distributionfunction'])
, а затем иметь доступ к значениям, например, через
self.elements.electron.distributionfunction.
Может быть, я делаю это совершенно неправильно. Я не очень разбираюсь в питоне. Я знаю, что это было бы легко сделать, если бы я не беспокоился о динамическом именовании переменных.
Надеюсь, я ясно дал понять, чего пытаюсь достичь!