Python字典完整学习指南¶
1. 什么是字典?想象一下...¶
想象你有一个神奇的通讯录!这个通讯录有些特别: - 每个联系人都有自己的名字(键)和联系方式(值) - 可以随时添加新的联系人 - 可以修改已有联系人的信息 - 可以快速找到任何人的联系方式
在Python中,我们把这个神奇的通讯录叫做"字典"(Dictionary)!
2. 基本操作¶
2.1. 创建字典¶
# 直接创建字典
student = {"name": "小明", "age": 12, "grade": "六年级"}
# 使用dict()函数创建
person = dict(name="小红", age=11, hobby="画画")
# 创建空字典
empty_dict = {}
2.2. 访问元素¶
student = {"name": "小明", "age": 12, "grade": "六年级"}
# 使用键访问值
name = student["name"] # 得到"小明"
# 安全的访问方式(键不存在返回默认值)
age = student.get("age", 0) # 如果age不存在,返回0
2.3. 添加和修改元素¶
# 添加新的键值对
student["phone"] = "123-456"
# 修改已有的键值对
student["age"] = 13
# 批量更新
student.update({
"email": "xiaoming@example.com",
"address": "北京"
})
2.4. 删除元素¶
# 删除指定键值对
del student["phone"]
# 安全删除并返回值
email = student.pop("email", None) # 如果email不存在,返回None
# 随机删除并返回一个键值对
last_item = student.popitem()
# 清空字典
student.clear()
3. 字典操作¶
3.1. 遍历字典¶
student = {"name": "小明", "age": 12, "grade": "六年级"}
# 遍历所有键值对
for key, value in student.items():
print(f"{key}: {value}")
# 只遍历键
for key in student.keys():
print(key)
# 只遍历值
for value in student.values():
print(value)
3.2. 字典推导式¶
# 创建平方数字典
squares = {x: x**2 for x in range(5)} # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
# 过滤字典
scores = {"小明": 85, "小红": 92, "小华": 78}
high_scores = {name: score for name, score in scores.items() if score >= 85}
4. 实战示例¶
4.1. 学生信息管理¶
# 创建学生信息系统
students = {}
def add_student(name, age, grade):
students[name] = {
"age": age,
"grade": grade,
"courses": []
}
print(f"已添加学生:{name}")
def add_course(name, course):
if name in students:
students[name]["courses"].append(course)
print(f"已为{name}添加课程:{course}")
else:
print(f"未找到学生:{name}")
# 使用示例
add_student("小明", 12, "六年级")
add_course("小明", "数学")
add_course("小明", "英语")
print(students)
4.2. 购物车系统¶
# 创建购物车
cart = {}
def add_to_cart(item, price, quantity=1):
if item in cart:
cart[item]["quantity"] += quantity
else:
cart[item] = {"price": price, "quantity": quantity}
print(f"已添加{quantity}个{item}")
def calculate_total():
total = sum(item["price"] * item["quantity"] for item in cart.values())
return total
# 使用示例
add_to_cart("苹果", 5, 3)
add_to_cart("香蕉", 3, 2)
print(f"总价:{calculate_total()}元")
5.应用场景¶
5.1. 数据存储¶
- 用户信息管理
- 配置文件存储
- 缓存系统
5.2. 数据统计¶
- 词频统计
- 成绩统计
- 投票统计
5.3. 映射关系¶
- 数据库记录
- 状态机转换
- 多语言翻译
6. 小练习¶
- 创建一个字典来存储你的个人信息(姓名、年龄、城市等)
- 编写一个函数,统计一个字符串中每个字符出现的次数
- 实现一个简单的通讯录系统,支持添加、删除和查找联系人