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. 字典推导式让生成复杂结构变得简洁高效。

相关推荐
Blossom.11818 小时前
移动端部署噩梦终结者:动态稀疏视觉Transformer的量化实战
java·人工智能·python·深度学习·算法·机器学习·transformer
AiXed18 小时前
PC微信协议之AES-192-GCM算法
前端·数据库·python
灵光通码19 小时前
神经网络基本概念
python·神经网络
q***925120 小时前
Spring Cloud Data Flow 简介
后端·spring·spring cloud
m0_6398171521 小时前
基于springboot火锅店管理系统【带源码和文档】
java·spring boot·后端
Petrichor_H_21 小时前
DAY 31 文件的规范拆分和写法
python
咚咚王者21 小时前
人工智能之编程进阶 Python高级:第九章 爬虫类模块
开发语言·python
会编程的林俊杰21 小时前
SpringBoot项目启动时的依赖处理
java·spring boot·后端
码事漫谈1 天前
C++循环结构探微:深入理解while与do...while
后端
深蓝海拓1 天前
使matplot显示支持中文和负号
开发语言·python