Python学习第五天:深入元组与字典实战
今天重点攻克了Python的元组和字典两大核心数据结构,通过实战案例深化理解。以下是核心内容总结:
一、元组(Tuple)详解
元组是不可变序列,适合存储无需修改的数据集合,如坐标、配置项等。
特性与操作
- 创建:
t = (1, "a", 3.14)或省略括号t = 1, "a", 3.14 - 不可变性:元素不可增删改,但可整体重新赋值
- 解包:快速提取值
x, y, z = (10, 20, 30) # x=10, y=20, z=30 - 嵌套结构:支持元组嵌套
matrix = ((1, 2), (3, 4), (5, 6))
实战案例:函数多返回值
def get_user_info():
name = "Alice"
age = 25
return name, age # 隐式转换为元组
user_data = get_user_info()
print(f"姓名:{user_data[0]}, 年龄:{user_data[1]}") # 输出:姓名:Alice, 年龄:25
二、字典(Dictionary)核心应用
字典是键值对映射的可变容器,支持高效数据检索。
关键操作
- 创建:
d = {"name": "Bob", "age": 30} - 增删改查:
d["email"] = "bob@example.com" # 新增 d["age"] = 31 # 修改 del d["name"] # 删除 print(d.get("email", "N/A")) # 安全获取 - 字典推导式:快速生成字典
squares = {x: x**2 for x in range(1, 6)} # {1:1, 2:4, 3:9, 4:16, 5:25}
实战案例:学生成绩管理系统
# 初始化嵌套字典
students = {
"101": {"name": "Tom", "scores": (85, 92, 78)},
"102": {"name": "Lisa", "scores": (90, 88, 95)}
}
# 添加新学生
students["103"] = {"name": "Jack", "scores": (76, 85, 80)}
# 计算平均分
for sid, info in students.items():
avg_score = sum(info["scores"]) / len(info["scores"])
print(f"学号:{sid}, 平均分:{avg_score:.2f}")
# 输出:
# 学号:101, 平均分:85.00
# 学号:102, 平均分:91.00
# 学号:103, 平均分:80.33
三、元组与字典的协作技巧
- 元组作字典键:因元组不可变,可作为字典的键
location_map = {(35, 139): "东京", (40, 116): "北京"} print(location_map[(35, 139)]) # 输出:东京 - 字典值存储元组:保持数据完整性
weather_data = { "2023-05-01": (22, 15, 0.8), # (最高温, 最低温, 湿度) "2023-05-02": (25, 18, 0.6) }
总结
- 元组:轻量级不可变数据容器,适合保护数据安全
- 字典:灵活键值存储,支持高效检索与动态更新
- 协作价值:元组为字典提供稳定键,字典为元组提供结构化存储
今日实战深刻体会到:元组是数据的保险箱,字典是数据的导航图!明日计划挑战集合(Set)与文件操作💪
本文代码均在Python 3.10验证通过,建议搭配Jupyter Notebook实操练习。
368

被折叠的 条评论
为什么被折叠?



