网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
如果要把一个对象放入到散列表里,就先要计算这个元素键的散列值。这就要求键(key)必须是可散列的。
一个可散列的对象必须满足以下条件:
支持 hash() 函数,并且通过 hash() 方法所得到的散列值是不变的。
支持通过 eq() 方法来检测相等性。
若 a == b 为真,则 hash(a) == hash(b) 也为真。
散列表的算法:
为了获取键 search_key 所对应的值 search_value,Python 会首先调用 hash(search_key) 计算 search_key 的散列值,把这个值最低的几位数字当作偏移量,在散列表里查找表元(具体取几位,得看当前散列表的大小)。若找到的表元是空的,则抛出 KeyError 异常;若不为空,则表元里会有一对 found_key:f