Aji*_*yay 5 python variables dynamic variable-assignment
我有一个 SDF 数据文件,它以块格式存储变量名称及其值。
旁边的值是varNameList与 sdf 文件内的数据块相对应的变量(字符串)的名称,并且只能通过给出这些变量名称来访问它。
我在 ipython 中使用以下代码读取数据文件和变量
import sdf
import numpy as np
dataFile = sdf.read('0010.sdf')
varNameList = dir(dataFile)
varSize = np.size(varNameList) #gives the array size
vName = 'dataFile.'+np.str(varNameList[51])+'.data'
Run Code Online (Sandbox Code Playgroud)
变量名称的输出如下:
In [71]:varNameList[51]
Derived_Number_Density_electron
In [72]:vName
'dataFile.Derived_Number_Density_electron.data'
Run Code Online (Sandbox Code Playgroud)
现在,我希望在作业的右侧使用这个字符串,例如
electronDensity = dataFile.Derived_Number_Density_electron.data
Run Code Online (Sandbox Code Playgroud)
如果我在标准 Python 程序中编写这一行,它会读取数据并将其分配给 electroDensity。
然而,在我的模拟中,这些变量是动态创建的,并且可以使用dir()上面编写的命令找到它们的名称。我无法创建相当于的程序行
electronDensity = dataFile.Derived_Number_Density_electron.data
Run Code Online (Sandbox Code Playgroud)
您可以使用evalPython 计算字符串中的表达式。这是一个简单的例子:
>>> x = 123
>>> y = "x"
>>> z = eval(y)
>>>
>>> print z
123
Run Code Online (Sandbox Code Playgroud)
对于你的情况,你可以这样做:
electronDensity = eval(vName)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
498 次 |
| 最近记录: |