Python字典中出现None键的探究
在Python字典操作中,有时会意外发现字典包含一个键值为None的,其值可能为空字符串””。本文将分析此现象的成因。
问题:开发者在遍历字典herb2class查找值为””的键时,发现None键的值为空字符串。这令人困惑,因为None通常不被认为是字典键。进一步测试发现,直接访问herb2class[None]会报错,与遍历结果矛盾。
解答:None 确实可以作为字典键。Python字典键必须是可哈希的(hashable),而None满足此条件。 可哈希对象包括:None、数字、字符串、元组(元素也需可哈希)、冻结集合(元素也需可哈希)、字节等。 任何实现了__hash__和__eq__方法的对象都可以作为字典键。
立即学习“”;
因此,None作为键并非因为None本身不可作为键,而是代码在某处已将None添加为herb2class的键。 开发者应仔细检查代码,找出添加None键的位置。打印herb2class字典内容即可直接查看包含None键的键值对。
以上就是Python字典中为何会出现None?的详细内容,更多请关注php中文网其它相关文章!