🐍
“纸上得来终觉浅,绝知此事要躬行。” —— 陆游《冬夜读书示子聿》
在上一篇文章中,我们系统学习了 Python 列表的“增删改查”和排序等基础内功。但编程是一门实践的艺术,光懂理论可不行!
今天,我们就把课堂搬进真实的开发场景,通过三个由浅入深的实战案例,带你彻底打通列表的“任督二脉”,看看它在实际开发中到底有多强大!🚀
🎯 场景一:学生成绩大统计(列表推导式的威力)
业务需求:学长手里有一份包含全班成绩的列表,现在需要快速筛选出“优秀(≥90分)”的同学,并统计人数。
传统做法:写一个 for 循环,加上 if 判断,再 append 到新列表里。优雅做法:一行代码搞定!这就是 Python 特有的列表推导式(List Comprehensions)。
scores = [85, 92, 78, 65, 90, 88, 70, 60, 55, 95, 80]# 利用列表推导式,一行代码筛选出90分以上的成绩excellent = [score for score in scores if score >= 90]print(f"优秀成绩列表:{excellent}")print(f"优秀人数:{len(excellent)}")
💡 核心亮点:列表推导式不仅代码极其简洁优雅,而且在 Python 底层有专门的指令支持,运行性能也优于传统的 for 循环!强烈建议大家在日常开发中多用起来。
🎯 场景二:电商商品价格区间处理(切片与排序结合)
业务需求:电商后台有一批商品的价格,运营需要找出价格排名前 3 的商品,或者筛选出特定价格区间的商品。
prices = [199, 59, 299, 89, 450, 120, 350]# 1. 先按价格降序排序(注意:sorted() 会生成新列表,不改变原数据)sorted_prices = sorted(prices, reverse=True)# 2. 利用切片操作,轻松获取前 3 名最贵的商品top_3 = sorted_prices[:3]print(f"最贵的3件商品价格为:{top_3}")# 3. 结合推导式,筛选出 100~300 元区间的商品mid_range = [p for p in prices if 100 <= p <= 300]print(f"100-300元区间的商品:{mid_range}")
💡 核心亮点:将 sorted() 函数与切片 [:3] 结合,是处理排行榜、Top N 数据的黄金搭档。
🎯 场景三:多维数据管理(嵌套列表与矩阵)
业务需求:在教务系统中,需要记录 3 个学生、每人 3 门课的成绩。这时候,一维列表就不够用了,我们需要用到嵌套列表(二维列表)。
# 构建一个 3x3 的成绩矩阵# ⚠️ 避坑警告:千万不要用 [[0]*3]*3 来创建!这会导致浅拷贝陷阱,改一个全变。# ✅ 正确姿势:使用列表推导式生成matrix = [[0 for _ in range(3)] for _ in range(3)]# 录入第一个学生的成绩matrix[0] = [95, 88, 92]# 录入第二个学生的成绩matrix[1] = [78, 85, 80]# 遍历输出每个学生的成绩for i, student_scores in enumerate(matrix): print(f"学生{i+1}的成绩:{student_scores}")
💡 核心亮点:嵌套列表是处理表格数据、数学矩阵的利器。但一定要记住:创建多维嵌套列表时,务必使用列表推导式,避免引用传递带来的“牵一发而动全身”的 Bug。
📝 实战挑战
今天的实战案例是不是让你对列表有了全新的认识?光看可不行,动手才是硬道理!
🏆 挑战任务:请结合今天学到的列表推导式和排序知识,写一段代码:
给定一个包含 10 个随机整数的列表,筛选出其中的偶数,并将这些偶数从大到小排序后打印出来。
👨🏫 学长寄语:代码敲百遍,其义自见。不要害怕写出 Bug,每一个报错都是你进阶的垫脚石。把今天学的推导式和切片用起来,你会发现 Python 的世界原来如此优雅!
觉得今天的实战案例有启发?别忘了点赞、在看、转发三连支持!我们下期进阶篇见! ❤️