我正在学习EdEx 6.00.2x在线课程,我的代码中有一部分很难理解:
newResistances = copy.deepcopy(self.resistances)
for drugs in self.resistances:
resistancePicker = random.random()
if self.resistances[drugs] == True:
if resistancePicker < self.mutProb:
print self.mutProb
newResistances[drugs] = False
elif self.resistances[drugs] == False:
if resistancePicker < self.mutProb:
print self.mutProb
newResistances[drugs] = True
print newResistances
return ResistantVirus(self.maxBirthProb, self.clearProb, newResistances, self.mutProb)
self.resistances
是一个包含药物名称键和True
或False
值{'a':True,'b':True}
的字典。我的问题是,在newResistances
字典中似乎只有字典的第一个元素被计算和更改。如果这个问题太含糊/需要更多的上下文,请告诉我。你知道吗
这是因为你的
return
是错误的位置。如果将其移动到与for
对齐的位置,您将看到代码遍历所有键。你知道吗我还更新了代码以删除像
if predicate==True
这样的结构,因为您可以只做if predicate:
。你知道吗代码应该是这样的:
相关问题 更多 >
编程相关推荐