我有如下代码:
class SifFile():
setting = {}
interesting_param = ['Temp', 'Pressure']
def __init__(self, get_param):
self.File_Type = "Andor Technology Multi-Channel File"
for k, v in get_param.items():
if SifFile.interesting_param in k:
SifFile.setting[k] = v
return SifFile.setting
get_parameter = {'Temp':75, 'Pressure':50, 'Helium':90, 'Exp':96}
sif = SifFile(get_parameter)
有一个大dict
名字get_parameter
,有几个参数和它们的值。
还有一个名为的列表interesting_param
,其中包含2个元素。
我想做的是检查interesting_param
列表中的哪些参数存在于get_parameter
字典中,我想将这些参数保存在名为的空字典中setting
我尝试运行上面的代码,但它给了我以下错误:
追溯(最近一次通话):
文件“”,第16行,在sif = SifFile(get_parameter)中
如果k中有SifFile.interesting_param ,则在init的第8行添加文件“” :
TypeError:'in'需要将字符串作为左操作数,而不是列表
预期产量:
setting = {'Temp':75, 'Pressure':50}
这是将为您提供预期答案的代码:
class SifFile():
setting = {}
interesting_param = ['Temp', 'Pressure']
def __init__(self):
self.File_Type = "Andor Technology Multi-Channel File"
return
def func(self, get_param):
for k, v in get_param.items():
if k in SifFile.interesting_param:
SifFile.setting[k] = v
return SifFile.setting
get_parameter = {'Temp':75, 'Pressure':50, 'Helium':90, 'Exp':96}
sif = SifFile()
x=sif.func(get_parameter)
print(x)
我创建了另一个函数“ func”,因为“ init()”无法返回字典。它应该只返回“无”。除此之外,for循环中的条件语句也被更改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句