键在字典中时的KeyError

时间:2017-10-06 06:22:29

标签: python dictionary keyerror

所以我偶然发现了这个奇怪的错误。我制作了一个包含这些键的字典:

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)

我不确定这里有什么不对...... 我很感激帮助!

3 个答案:

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