侧边栏壁纸
博主头像
编程之家 博主等级

行动起来,活在当下

  • 累计撰写 37 篇文章
  • 累计创建 3 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Python 程序设计 - 15. 字典 (dict)

李航
2025-12-05 / 0 评论 / 0 点赞 / 4 阅读 / 0 字

Python 程序设计 - 15. 字典 (dict)

1. 引言

在 Python 中,字典dict)是一种内置的数据结构,它存储键值对(key-value pair)。字典是一种无序的数据结构,支持通过键来高效地查找对应的值。字典的每个键是唯一的,可以是任何不可变类型(如字符串、数字、元组等),而值可以是任何数据类型。

字典常用于存储具有关联性的数据,例如存储学生信息(学号-姓名),商品库存(商品编号-价格)等。

2. 字典的基本概念

字典是一个由键值对组成的集合,键和值通过冒号(:)分隔,键值对之间用逗号(,)分隔。字典的创建使用大括号 {},或者通过 dict() 函数。

定义字典

# 使用大括号创建字典
student = {
    "name": "Alice",
    "age": 22,
    "major": "Computer Science"
}

# 使用 dict() 函数创建字典
student2 = dict(name="Bob", age=20, major="Mathematics")

3. 字典的常用操作

3.1 访问字典的值

通过字典的键来访问对应的值。可以使用方括号 [] 来获取值,也可以使用 get() 方法。

student = {"name": "Alice", "age": 22, "major": "Computer Science"}

# 使用键访问值
print(student["name"])  # 输出: Alice

# 使用 get() 方法访问值,如果键不存在,返回 None 或指定默认值
print(student.get("age"))  # 输出: 22
print(student.get("address", "Unknown"))  # 输出: Unknown
3.2 添加或修改字典的元素

可以直接通过键来修改字典中的值,如果键不存在,则会添加一个新的键值对。

student = {"name": "Alice", "age": 22, "major": "Computer Science"}

# 修改已有键的值
student["age"] = 23
print(student)  # 输出: {'name': 'Alice', 'age': 23, 'major': 'Computer Science'}

# 添加新的键值对
student["address"] = "New York"
print(student)  # 输出: {'name': 'Alice', 'age': 23, 'major': 'Computer Science', 'address': 'New York'}
3.3 删除字典中的元素

可以使用 del 语句、pop() 方法或 popitem() 方法来删除字典中的元素。

  • del:删除指定的键值对。
  • pop(key):删除指定键的元素并返回其对应的值。
  • popitem():随机删除一个键值对,并返回该键值对。
student = {"name": "Alice", "age": 23, "major": "Computer Science"}

# 使用 del 删除指定键
del student["age"]
print(student)  # 输出: {'name': 'Alice', 'major': 'Computer Science'}

# 使用 pop() 删除并返回键值对
name = student.pop("name")
print(name)  # 输出: Alice
print(student)  # 输出: {'major': 'Computer Science'}

# 使用 popitem() 删除并返回随机键值对
random_item = student.popitem()
print(random_item)  # 输出: ('major', 'Computer Science')
print(student)  # 输出: {}
3.4 遍历字典

可以使用 for 循环遍历字典中的键、值或键值对。

student = {"name": "Alice", "age": 23, "major": "Computer Science"}

# 遍历字典的键
for key in student:
    print(key)
# 输出:
# name
# age
# major

# 遍历字典的值
for value in student.values():
    print(value)
# 输出:
# Alice
# 23
# Computer Science

# 遍历字典的键值对
for key, value in student.items():
    print(f"{key}: {value}")
# 输出:
# name: Alice
# age: 23
# major: Computer Science
3.5 字典的键和键值

可以使用 keys() 获取字典的所有键,使用 values() 获取字典的所有值,使用 items() 获取字典的所有键值对。

student = {"name": "Alice", "age": 23, "major": "Computer Science"}

# 获取字典的所有键
print(student.keys())  # 输出: dict_keys(['name', 'age', 'major'])

# 获取字典的所有值
print(student.values())  # 输出: dict_values(['Alice', 23, 'Computer Science'])

# 获取字典的所有键值对
print(student.items())  # 输出: dict_items([('name', 'Alice'), ('age', 23), ('major', 'Computer Science')])
3.6 字典的长度

可以使用 len() 函数来获取字典中键值对的个数。

student = {"name": "Alice", "age": 23, "major": "Computer Science"}
print(len(student))  # 输出: 3
3.7 字典的合并

可以使用 update() 方法合并两个字典。如果有相同的键,后一个字典的值会覆盖前一个字典的值。

student = {"name": "Alice", "age": 23}
contact = {"phone": "123-456-7890", "email": "alice@example.com"}

# 使用 update() 合并字典
student.update(contact)
print(student)  # 输出: {'name': 'Alice', 'age': 23, 'phone': '123-456-7890', 'email': 'alice@example.com'}

4. 字典的应用场景

字典在 Python 中非常常用,特别是在处理具有映射关系的数据时。例如,存储员工信息、商品价格、学生成绩等。字典常见的应用场景包括:

  1. 存储关联数据:如用户名和密码、学生与成绩的对应关系等。
  2. 数据分析:字典可以作为键值对的容器,存储统计结果或分析结果。
  3. 实现映射:字典可以用于实现某种映射关系,如将字符串映射到数字,或通过键查找对应的数据。

5. 字典常见方法

方法描述
clear()删除字典中的所有元素
copy()返回字典的一个浅拷贝
fromkeys(iterable, value)创建一个新字典,其中包含给定的 iterable 中的元素作为键,值为指定的 value
get(key, default)返回键 key 对应的值,如果键不存在,返回 default
items()返回字典的所有键值对
keys()返回字典的所有键
pop(key)删除指定键并返回对应的值
popitem()删除并返回字典中的一个键值对
setdefault(key, default)如果键不存在,则插入键和默认值,并返回默认值
update(other)使用另一个字典的键值对更新当前字典
values()返回字典的所有值

6. 练习题

练习 1:创建字典并访问元素
# 创建字典并访问元素
person = {"name": "John", "age": 30, "city": "New York"}
print(person["name"])  # 输出: John
print(person.get("age"))  # 输出: 30
练习 2:修改字典中的值
person = {"name": "John", "age": 30, "city": "New York"}
# 修改 age 的值
person["age"] = 31
print(person)  # 输出: {'name': 'John', 'age': 31, 'city': 'New York'}
练习 3:删除字典中的元素
person = {"name": "John", "age": 30, "city": "New York"}
# 删除 city 键值对
del person["city"]
print(person)  # 输出: {'name': 'John', 'age': 30}
练习 4:字典合并
dict1 = {"name": "John", "age": 30}
dict2 = {"city": "New York", "job": "Engineer"}
dict1.update(dict2)
print(dict1)  # 输出: {'name': 'John', 'age': 30, 'city': 'New York', 'job': 'Engineer'}
0

评论区