python字典这种情况可能是什么原因?
dict里面很奇怪的出现了一个空值,于是遍历一遍看看哪个出了问题:
for k,v in herb2class.items(): if v=='':
print('这个key是',k)
没想到结果是:
这个key是 None
???
None根本做不了key的呀。于是尝试了下herb2class[None],真不行。
那这是什么情况?
我知道解决方法可以直接略过这个k,v重新写入一个字典,但是就是想知道这种情况的原因?
回答:
认真看一下你的 herb2class
,打印出来看看, 肯定有key是None, value是''的元素。另外None是可以作为字典的key的。这个很好验证啊:
python">In [189]: b = {None: "demo"}In [190]: b[None]
Out[190]: 'demo'
因为字典的key必须是一个可哈希的对象,诸如: None, int, float, str, tuple(ps:元素也必须是hashable), frozenset(ps:元素也必须是hashable), bytes等,或者你可以理解为任何实现了 __hash__
和 __eq__
方法的对象,都可以作为字典的 key
。
以上是 python字典这种情况可能是什么原因? 的全部内容, 来源链接: utcz.com/p/938896.html