说说Python中字典和散列表,散列冲突的解决原理
散列表 Python dict 。 散列表 dict Python 如果要把一个对象放入到散列表里,就先要计算这个元素键的 散列值 。这就要求键(key)必须是可散列的。 一个可散列的对象必须满足以下条件: hash eq 散列表的算法: Python 散列值 散列冲突 。 KeyError 添加新元素跟上面的过程几乎一样,只不过在发现空表元的时候会放入这个新元素,不为空则为散列冲突,继续查找。 为什么字典是无序的 dict key1 key2 dict Python 如果在迭代一个字典的同时往里面添加新的键,会发生什么?不凑巧扩容了,不凑巧键的次序变了,然后就 orz 了。 总结 散列表是一个在时间和空间上做出权衡的经典例子。如果没有空间(内存)的限制,那么可以直接将键作为数组的索引。那么所有的查找时间复杂度为 O(1);如果没有时间的限制,那么可以直接用数组,这样只需要很少的内存。 文章来源: https://blog.csdn.net/sinat_38682860/article/details/91980984