我目前在字典中定义了一个字符列表:
characters = {'Tom':['Brown Hair', 'Brown Eyes'],
'Dick':['Brown Hair', 'Blue Eyes'],
'Harry':['Blonde Hair', 'Brown Eyes'],
'Joe':['Blonde Hair', 'Blue Eyes']}
我随机生成一个要根据字典中的值进行检查的属性。如果属性未包含在分配给键的值中的任何位置,则会删除该属性。如果是,则密钥不会被删除。我试过这个:
def one_turn(self):
for a, b in self.characters.items():
if self.att not in self.answer:
if self.att in b:
del self.characters[a]
else:
if self.att not in b:
del self.characters[a]
当self.att被分配给一个属性时,它将逐个遍历值列表,而我希望在决定是否删除之前检查所有内容。
干杯
答案 0 :(得分:0)
您只需要一个列表来跟踪值的存在(或不存在):
def one_turn(self):
missing_list = []
for a, b in self.characters.items():
if self.att not in self.answer:
if self.att in b:
missing_list.append(a)
else:
if self.att not in b:
missing_list.append(a)
# now delete all relevant characters
for key in missing_list:
del self.characters[key]
我希望我能正确理解你的意图......