4️⃣字典(dict)速查表
📋 常用方法
方法 | 用法示例 | 说明 |
---|---|---|
创建字典 | d = {'a': 1, 'b': 2} | 初始化字典 |
添加/更新元素 | d['c'] = 3 | 添加或更新键值 |
获取元素 | d['a'] | 访问键对应的值,key不存在会报错 |
安全获取元素 | d.get('x', default) | key不存在返回默认值 |
判断键是否存在 | 'a' in d | 返回 True/False |
删除键 | d.pop('a') | 删除键并返回对应值 |
获取所有键 | d.keys() | 返回所有键 |
获取所有值 | d.values() | 返回所有值 |
获取所有键值对 | d.items() | 返回所有 (key, value) 对 |
清空字典 | d.clear() | 删除所有键值 |
📝Python 字典简介
Python 内置了强大的字典(dict
)数据结构,也称为映射(map),它以“键-值”(key-value)对的形式存储数据,拥有极快的查找速度。它广泛应用于需要快速访问和存储数据的场景。
⚡为什么 dict 查找速度快?
普通的列表(list)查找需要遍历所有元素,时间复杂度随元素增多线性增长。而 dict
通过哈希算法,能直接计算出键对应的存储位置,查找速度几乎不随数据量变化。
举例对比:
names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]
# 查找“Bob”的成绩,需要先找到名字索引,再取对应分数,时间复杂度O(n)
而用 dict:
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(d['Bob']) # 直接访问,时间复杂度接近O(1)
💡dict 的特点与使用建议
特点 | dict | list |
---|---|---|
查找速度 | 极快,几乎不随数据量变化 | 线性增长,数据越多越慢 |
内存占用 | 较大,因为需要额外存储哈希表 | 较小 |
顺序 | Python 3.7+ 保持插入顺序 | 固定顺序 |
key 类型限制 | 必须是不可变类型(字符串、整数等) | 元素可以是任意类型 |
⚠️注意事项
- key 必须是不可变类型,否则会报
TypeError
(如 list 不能做 key)。 - dict 使用哈希算法存储,依赖 key 的 hash 值,确保同一个 key 一直对应同一个位置。
- Python 3.7 以后,dict 保持插入顺序,但逻辑上不依赖顺序。