我正在使用一个适合数据集的行的脚本并输出一些拟合参数。运行fitter的命令如下所示:
fitter = Fitter(hdf2.root.OM01, plot=False)
。
我想循环此命令,以便输出文件'hdf2.01', 'hdf2.02', ... 'hdf2.50'
如何循环此代码?
答案 0 :(得分:3)
如果我理解正确,您的对象具有编号属性(OM01
到OM50
)。您可以使用循环生成这些属性名称,并使用getattr从对象中检索它们。
如果您的对象被称为root
,就像在评论中那样,您可以执行以下操作:
parameters = []
for i in range(1, 51):
parameter = getattr(root, 'OM%02d' % i)
parameters.append(parameter)
# now all of your parameters are in the parameter array
或者,如果您喜欢列表推导(以及谁不喜欢):
parameters = [getattr(root, 'OM%02d' % i) for i in range(1, 51)]
我想你需要在Fitter
中使用这些参数,你可以这样做:
results = []
for i in range(1, 51):
parameter = getattr(hdf2.root, 'OM%02d' % i)
result = Fitter(parameter, plot=False)
results.append(result)
编辑:如果您的文件名称为“hdf2.root.OM01”,“hdf2.root.OM02”等,您可以这样做:
results = []
for i in range(1, 51):
filename = 'hdf2.root.OM%02d' % i
result = Fitter(filename, plot=False)
results.append(result)