Python 的字典()是 Python 中最重要、最常用的数据结构之一。它的底层实现基于 哈希表(Hash Table),这使得字典在理想情况下的查找、插入和删除操作的时间复杂度都为 O(1)。 然而,Python 对哈希表的实现经过了多次优化(特别是 Python 3.6 之后)。下面我将深入浅出地解析其底层原理。 --- 1. 核心概念:哈希表与哈希函数 字典本质上是一个数组(在内存中是连续的空间),通过 哈希函数 将“键(Key)”映射到数组的“索引(Index)”上。 1. 哈希函数(Hash Function): 当你执行 时,Python 首先计算 的哈希值:。 得到一个整数(例如 )。 要求: 字典的 Key 必须是不可变类型(可哈希),如整数、字符串、元组;列表和字典不能作为 Key。 2. 计算索引: 哈希值通常很大,不能直接作为数组下标。Python 通过取模运算(位运算优化)将哈希值映射到数组的大小范围内。 公式大致为:。 --- 2. 解决哈希冲突(Collision) 当两个不同的 Key 计算出的索引位置相同时,就发生了哈希冲突。 Python 使用...