浴室泡泡大作战
91.22M · 2026-03-29
字典是 Python 最常用、最强大的数据结构之一。它能高效地存储和查找数据,被广泛用于配置、数据映射、缓存、对象建模等场景。
字典(Dictionary)是一种 键值对(key-value) 的数据结构。
它以 键(key) 定位对应的 值(value),而不是通过索引。
语法格式如下:
# 创建字典
person = {"name": "Alice", "age": 25, "city": "Beijing"}
结构理解:
{} 包裹多个键值对,每对之间用逗号分隔。student = {"name": "Tom", "age": 20, "grade": "A"}
dict() 函数student = dict(name="Tom", age=20, grade="A")
student = dict([("name", "Tom"), ("age", 20), ("grade", "A")])
fromkeys() 创建具有相同值的字典keys = ["a", "b", "c"]
d = dict.fromkeys(keys, 0)
print(d) # {'a': 0, 'b': 0, 'c': 0}
person = {"name": "Alice", "age": 25}
print(person["name"]) # Alice
如果访问不存在的键,会报错:
print(person["gender"]) # KeyError
get() 安全访问print(person.get("gender", "未知")) # 未知
get() 不存在的键时返回默认值,不会报错。
person["age"] = 26 # 修改
person["city"] = "Beijing" # 新增
print(person)
del person["city"] # 删除指定键
person.pop("age") # 删除并返回该值
person.clear() # 清空整个字典
字典支持三种主要遍历方式:
person = {"name": "Alice", "age": 25, "city": "Beijing"}
# 遍历键
for key in person.keys():
print(key)
# 遍历值
for value in person.values():
print(value)
# 遍历键值对
for key, value in person.items():
print(key, "=>", value)
输出:
name => Alice
age => 25
city => Beijing
| 方法 | 作用 |
|---|---|
dict.keys() | 返回所有键 |
dict.values() | 返回所有值 |
dict.items() | 返回键值对元组 |
dict.get(key, default) | 获取指定键的值 |
dict.pop(key) | 删除并返回指定键的值 |
dict.update(other) | 合并其他字典 |
dict.copy() | 返回字典的浅拷贝 |
dict.clear() | 清空字典内容 |
示例:
user = {"name": "Tom", "age": 20}
extra = {"city": "Shanghai"}
user.update(extra)
print(user) # {'name': 'Tom', 'age': 20, 'city': 'Shanghai'}
字典的键必须是不可变类型,比如字符串、整数或元组。 以下写法是合法的:
d = {
"name": "Lucy",
1: "数字键",
(1, 2): "元组键"
}
但以下是错误的:
d = {[1, 2]: "列表键"} # TypeError: unhashable type: 'list'
Python 还支持使用 推导式(dict comprehension) 来快速生成字典。
示例:
squares = {x: x**2 for x in range(1, 6)}
print(squares)
输出:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
还可以使用条件过滤:
even_squares = {x: x**2 for x in range(10) if x % 2 == 0}
print(even_squares)
# {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}
scores = {
"Tom": 88,
"Lucy": 92,
"Jack": 76
}
# 输出最高分
max_name = max(scores, key=scores.get)
print(f"最高分是 {max_name}:{scores[max_name]}")
# 计算平均分
avg_score = sum(scores.values()) / len(scores)
print(f"平均分是 {avg_score:.2f}")
输出:
最高分是 Lucy:92
平均分是 85.33
字典的灵活键值访问使得数据处理变得直观高效。
| 特点 | 说明 |
|---|---|
| 数据结构 | 键值对(key-value) |
| 是否有序 | Python 3.7+ 起默认保持插入顺序 |
| 键是否唯一 | 唯一 |
| 键是否可变 | 不可变 |
| 常用操作 | 访问、修改、删除、遍历、合并 |
| 推导式 | 支持字典推导式创建新字典 |
{} 定义,支持各种创建与遍历方式。get()、items()、update() 等方法是开发中最常用的。