Python:KeyError:<__ main __。State对象位于0x7fd63d33be90>,但密钥存在

时间:2020-04-02 16:01:12

标签: python python-3.x dictionary

我有这行代码: [1] "Joe Exotic, Tiger King, Lead" "Carole Baskin, Husband Killer, Tiger Queen" [3] "Doc Antle, Tiger Person, Swinger" 如您所见,我喜欢一个名为g = g_score[current_state] + 1的字典,而g_scorecurrent_state类的实例。

字典看起来像这样:键是Action类实例,值是整数。因此State应该给出一些数字。

g_score[current_state]声明:

State

此外,它处于循环中,并且在每次迭代中都从队列中提取class State(): def __init__(self, player=None, boxes=set()): self.player = player self.boxes = boxes def __hash__(self): return hash((self.player, frozenset(self.boxes))) def __eq__(self, other): return (self.player, self.boxes) == (other.player, other.boxes) def __ne__(self, other): return not(self == other) def __lt__(self, other): return self ,但是为此添加current_state,然后再将其放入队列。 我收到此错误:

g_score

但是调试器显示g = g_score[current_state] + 1 KeyError: <__main__.State object at 0x7fd63d33be90> 具有这样的密钥,在我收到此错误之前,g_score已被调用3次,没有发生错误。

1 个答案:

答案 0 :(得分:0)

因此,我只是决定使用列表而不是状态,但我使用元组作为dict键。