所以我偶然发现了这个奇怪的错误。我制作了一个包含这些键的字典:
database_5x5 = {'(1, 0, 0, 0, 1)': [(0, 0), (0, 1)],
'(0, 1, 0, 1, 0)': [(0, 0), (0, 3)],
'(1, 1, 1, 0, 0)': [(0, 1)],
'(0, 0, 1, 1, 1)': [(0, 3)],
'(1, 0, 1, 1, 0)': [(0, 4)],
'(0, 1, 1, 0, 1)': [(0, 0)],
'(1, 1, 0, 1, 1)': [(0, 2)]
}
这是访问字典的代码:
bottom = tuple(puzzle[len(puzzle)-1])
next_moves = database_5x5[bottom]
我的代码运行并给出了这个错误:
KeyError: (0, 1, 1, 0, 1)
我不确定这里有什么不对...... 我很感激帮助!
答案 0 :(得分:2)
字典中的键是bottom
类型。你应该施展next_moves = database_5x5[str(bottom)]
:
/usr/...
答案 1 :(得分:1)
字典database_5x5
中的每个键都是一个字符串,但您请求的元素包含元组键bottom
。尝试转换密钥类型,例如,这样:
next_moves = database_5x5[str(bottom)]
答案 2 :(得分:0)
你的dict的键是字符串类型。所以你需要确定两件事。
1)此段tuple(puzzle[len(puzzle)-1])
生成一个字符串
2)(愚蠢的)空格和逗号完全匹配。
修复:
1)将您的密钥更改为不是字符串
2)将bottom
投射到字符串 - database_5x5[str(bottom)]