首页 > 解决方案 > 如何只删除一次出现的键?

问题描述

我正在尝试编写一个刽子手程序,如果一个单词被猜到,并且所有字母都在字典中,那么我们通过删除字典中单词的所有字母来更新字典。但是,如果我的字典有两个字母(比如 2 个 a),而我的单词只有一个 a,那么所有的 a 都会被删除。但我只想从字典中删除一个 a 。

到目前为止,我已经尝试过使用 pop 和 delete 方法,但它们没有奏效,并删除了所有字母实例。

    for i in word:
        if i in self.hand.keys():
            del self.hand[i]
            continue
        else:
            return False
    return True

对于一个测试用例,myHand = Hand(7) 创建一个手,它是一个长度为 7 的字典。然后我通过传递更新手:myHand.update('za'),其中单词是 'za'。我创建了一个假手'aazzmsp'。然而,当我更新手时,生成的新手是 msp,而不是 azmsp,这是因为代码删除了 a 和 z 的所有实例,而它应该只删除一个 a 和一个 z。

标签: pythonoop

解决方案


推荐阅读