Python迭代字典中的元组

时间:2017-06-19 06:12:24

标签: python python-2.7 list dictionary

我目前在字典中定义了一个字符列表:

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被分配给一个属性时,它将逐个遍历值列表,而我希望在决定是否删除之前检查所有内容。

干杯

1 个答案:

答案 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]

我希望我能正确理解你的意图......