[转载]为什么字典中的Key不能是列表
1 Python的字典是如何工作的
在Python中,字典就是一个个的映射,为了实现这个功能,Python必须能够做到,给出一个Key,找到哪一个Value与这个Key对应。如果我们将Key-value键值对存放到一个List中,每当需要的时候,就去遍历这个List,用Key和键值对对应的Key去进行对比。但是这样实现方法,如果数据量很大的时候就变得很低效。他的算法复杂度是O(n),n是存放键值对的数量。
为此Python使用了Hash(哈希)的方法来实现,要求每一个存放到字典中的对象都要实现Hash函数,这个函数可以产生一个唯一的int值,叫做Hash Value(哈希值),通过这个int值,就可以快速的确定对象在字典中的位置。然而,由于Hash碰撞的存在,可能存在两个对象的Hash值是相同的,所以在查找字典的时候,要比较Hash的值,还要比较Value的值。
