Python编程实战 · 基础入门篇 | 字典(dict)

在 Python 的世界里,除了列表(list)和元组(tuple)这样的序列类型 ,还有一种更灵活的数据结构------字典(dict) 。 如果说列表像"有序的货架",那么字典就像"带标签的抽屉":每个数据都有一个唯一的"名字",叫做 键(key)

字典是 Python 最常用、最强大的数据结构之一。它能高效地存储和查找数据,被广泛用于配置、数据映射、缓存、对象建模等场景。


一 什么是字典

字典(Dictionary)是一种 键值对(key-value) 的数据结构。 它以 键(key) 定位对应的 值(value),而不是通过索引。

语法格式如下:

python 复制代码
# 创建字典
person = {"name": "Alice", "age": 25, "city": "Beijing"}

结构理解:

  • 键(key)就像标签,必须是唯一且不可变的对象(如字符串、数字、元组);
  • 值(value)可以是任意类型;
  • 使用大括号 {} 包裹多个键值对,每对之间用逗号分隔。

二 字典的创建方式

1. 使用大括号直接创建

python 复制代码
student = {"name": "Tom", "age": 20, "grade": "A"}

2. 使用 dict() 函数

python 复制代码
student = dict(name="Tom", age=20, grade="A")

3. 从键值对列表创建

python 复制代码
student = dict([("name", "Tom"), ("age", 20), ("grade", "A")])

4. 使用 fromkeys() 创建具有相同值的字典

python 复制代码
keys = ["a", "b", "c"]
d = dict.fromkeys(keys, 0)
print(d)  # {'a': 0, 'b': 0, 'c': 0}

三 访问与修改字典

1. 按键访问

python 复制代码
person = {"name": "Alice", "age": 25}
print(person["name"])  # Alice

如果访问不存在的键,会报错:

python 复制代码
print(person["gender"])  # KeyError

2. 使用 get() 安全访问

python 复制代码
print(person.get("gender", "未知"))  # 未知

get() 不存在的键时返回默认值,不会报错。

3. 修改与新增键值对

python 复制代码
person["age"] = 26          # 修改
person["city"] = "Beijing"  # 新增
print(person)

4. 删除键值对

python 复制代码
del person["city"]       # 删除指定键
person.pop("age")        # 删除并返回该值
person.clear()           # 清空整个字典

四 遍历字典

字典支持三种主要遍历方式:

python 复制代码
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)

输出:

ini 复制代码
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() 清空字典内容

示例:

python 复制代码
user = {"name": "Tom", "age": 20}
extra = {"city": "Shanghai"}
user.update(extra)
print(user)  # {'name': 'Tom', 'age': 20, 'city': 'Shanghai'}

六 字典的键(key)必须可哈希

字典的键必须是不可变类型,比如字符串、整数或元组。 以下写法是合法的:

python 复制代码
d = {
    "name": "Lucy",
    1: "数字键",
    (1, 2): "元组键"
}

但以下是错误的:

python 复制代码
d = {[1, 2]: "列表键"}  # ❌ TypeError: unhashable type: 'list'

七 字典推导式

Python 还支持使用 推导式(dict comprehension) 来快速生成字典。

示例:

python 复制代码
squares = {x: x**2 for x in range(1, 6)}
print(squares)

输出:

yaml 复制代码
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

还可以使用条件过滤:

python 复制代码
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}

八 实战案例:学生成绩统计

python 复制代码
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+ 起默认保持插入顺序
键是否唯一 ✅ 唯一
键是否可变 ❌ 不可变
常用操作 访问、修改、删除、遍历、合并
推导式 支持字典推导式创建新字典

🔹 总结

  1. 字典是 Python 中最灵活的数据容器,用于键值对映射。
  2. 键必须是不可变对象(如字符串、数字、元组)。
  3. 使用 {} 定义,支持各种创建与遍历方式。
  4. get()items()update() 等方法是开发中最常用的。
  5. 字典推导式让生成复杂结构变得简洁高效。

相关推荐
程序员爱钓鱼3 小时前
Python编程实战 · 基础入门篇 | 集合(set)
后端·python·ipython
IT_陈寒3 小时前
Python 3.12震撼发布:5大性能优化让你的代码提速50%,第3点太香了!
前端·人工智能·后端
B站_计算机毕业设计之家4 小时前
计算机视觉:python车牌识别检测系统 YOLOv8 深度学习pytorch技术 LPRNet车牌识别算法 CCPD2020数据集 ✅
大数据·python·深度学习·机器学习·计算机视觉·数据分析·车牌识别
这个世界的真神4 小时前
【每日算法】 洛谷 P12341 【[蓝桥杯 2025 省 A/Python B 第二场] 消消乐】 2025.10.26
python·算法·蓝桥杯
风象南4 小时前
BSON vs JSON:不只是"二进制"这么简单
后端
l1t4 小时前
利用DeepSeek改写递归CTE SQL语句为Python程序及优化
数据库·人工智能·python·sql·算法·性能优化·deepseek
Victor3565 小时前
Redis(87)Redis缓存的LRU淘汰策略如何配置?
后端
寄思~5 小时前
python批量读取word表格写入excel固定位置
开发语言·python·excel
Victor3565 小时前
Redis(86)Redis缓存的命中率如何提高?
后端