Python 的 dict 为什么查询是 O(1)?拆开哈希表、扰动函数与扩容阈值

掘金 · score 44.0 · 10/29/2026, 3:03:30 AM

摘要

很多人背过一句话:"Python 的字典查询是 O(1) 的。"但真到了面试或者调性能的时候,这句话经不起两问:凭什么是常数?常数就不是要算哈希吗?哈希不要时间?今天我们就把 CPython 3.13

原始内容

很多人背过一句话:"Python 的字典查询是 O(1) 的。"但真到了面试或者调性能的时候,这句话经不起两问:凭什么是常数?常数就不是要算哈希吗?哈希不要时间?今天我们就把 CPython 3.13