1. 字典基础:什么是字典?
字典是 Python 中的一种**键值对(key-value)**映射容器类型,和现实中的“词典”很像 —— 用关键字查找对应的内容。
person = {"name": "Alice","age": 30,"city": "Beijing"
}
- 每一项是
key: value
对。 - 键(key)必须是不可变类型(如字符串、整数、元组等)。
- 值(value)可以是任意类型。
2. 创建字典的方式
d1 = {"a": 1, "b": 2}
d2 = dict(a=1, b=2)
d3 = dict([("a", 1), ("b", 2)])
empty = {}
3. 常用操作汇总
访问值
d = {"x": 100, "y": 200}
print(d["x"])
print(d.get("y"))
print(d.get("z", 0))
注意:[]
访问不存在键会报错
print(d["z"])
添加 / 更新键值
d["z"] = 300
d["x"] = 999
删除键值
del d["y"]
value = d.pop("z")
d.clear()
遍历字典
for k in d:print(k)
for v in d.values():print(v)
for k, v in d.items():print(k, v)
其他常用函数
len(d)
"key" in d
d.keys()
d.values()
d.items()
4. 字典推导式(dict comprehension)
squares = {x: x**2 for x in range(5)}
5. 高级用法
setdefault()
:若 key 不存在则添加
d = {}
d.setdefault("a", 10)
d.setdefault("a", 20)
update()
:批量更新或合并字典
d1 = {"a": 1}
d2 = {"b": 2, "a": 3}
d1.update(d2)
嵌套字典
students = {"alice": {"age": 20, "grade": "A"},"bob": {"age": 21, "grade": "B"}
}
6. 字典性能
- 字典基于 哈希表(Hash Table) 实现。
O(1)
时间复杂度:插入、查找、删除。- Python 3.7 起,字典保持插入顺序。
7. 注意事项
错误类型 | 说明 |
---|
KeyError | 访问不存在的键 |
TypeError | 使用可变类型做 key,如 list |
修改遍历中字典 | 会导致运行时错误或逻辑混乱 |
8. 字典常用技巧小结
目标 | 方法 | |
---|
默认值字典 | collections.defaultdict | |
统计频率 | collections.Counter | |
排序 | sorted(d.items(), key=...) | |
合并字典(3.9+) | `d1 | d2` |
深层嵌套处理 | dict.get(k1, {}).get(k2) | |