繁体   English   中英

键在字典中时的KeyError

[英]KeyError when key is in dictionary

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

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)

我不确定这里有什么问题......我很感激你的帮助!

字典中的键是string类型。 你应该铸造bottom

next_moves = database_5x5[str(bottom)]

您的字典database_5x5中的每个键都是一个字符串,但您请求一个元具有元组bottom 尝试转换密钥类型,例如,这样:

next_moves = database_5x5[str(bottom)]

你的dict的键是字符串类型。 所以你需要确定两件事。

1)此段tuple(puzzle[len(puzzle)-1])生成一个字符串。
2)(愚蠢的)空格和逗号完全匹配。

固定:
1)将您的密钥更改为不是字符串。
2)将bottom转换为字符串 - database_5x5[str(bottom)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM