我有这行代码:
[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_score
是current_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次,没有发生错误。
答案 0 :(得分:0)
因此,我只是决定使用列表而不是状态,但我使用元组作为dict键。