欢迎来到「Python学习与交流」!在前五课中,我们学会了用变量存储单个数据,用函数封装逻辑。但想象一下,如果要记录全班 50 名同学的成绩,难道要创建 score1、score2……score50这 50 个变量吗?显然不现实。
今天,我们将学习 Python 中最常用的两种序列容器——列表(list)和 元组(tuple)。它们能像“收纳盒”一样把大量数据有序地装在一起,用一个名字就能管理成百上千条数据!
一、列表 list:可随意增删改的“动态收纳盒”
列表是 Python 中使用频率最高的数据结构,用方括号 [] 定义,元素之间用逗号分隔。它最大的特点是可变——你可以随时添加、删除、修改里面的内容。
1. 创建与访问
fruits = ["苹果", "香蕉", "橙子"]print(fruits[0]) # 输出:苹果(索引从0开始)print(fruits[-1]) # 输出:橙子(负索引表示从末尾倒数)
⚠️ 新手必知:Python 的索引从 0 开始,fruits[0] 是第一个元素,fruits[2] 是第三个元素。访问超出范围的索引会报 IndexError。
2. 常用操作:增删改查
# ➕ 增加fruits.append("葡萄") # 末尾添加一个元素fruits.insert(1, "草莓") # 在索引1的位置插入# ✏️ 修改fruits[0] = "西瓜" # 将第一个元素改为西瓜# ❌ 删除fruits.remove("香蕉") # 按值删除(只删第一个匹配的)popped = fruits.pop() # 弹出并返回最后一个元素# 🔍 查询print(len(fruits)) # 获取列表长度print("苹果" in fruits) # 判断元素是否存在,返回 True/False
3. 遍历列表
结合第四课的 for 循环,轻松处理所有元素:
scores = [85, 92, 78, 96, 88]total = 0for score in scores: total += scoreprint(f"平均分:{total / len(scores)}")
二、元组 tuple:不可变的“安全保险箱”
元组用小括号 () 定义,看起来和列表很像,但它有一个核心区别:一旦创建,就不能修改、添加或删除元素。
point = (3, 4)colors = ("红", "绿", "蓝")print(point[0]) # 输出:3(访问方式和列表完全相同)# point[0] = 5 # ❌ TypeError! 元组不支持赋值修改
三、列表 vs 元组:到底该选哪个?
简单记忆:数据会变用列表,数据不变用元组。
四、实战:学生成绩管理器
综合运用列表操作和函数封装,写一个实用的成绩管理工具:
def manage_scores(): scores = [] # 创建空列表 while True: cmd = input("请输入命令(add/show/avg/quit):").strip() if cmd == "add": score = float(input("请输入成绩:")) scores.append(score) print(f"✅ 已添加,当前共 {len(scores)} 条记录") elif cmd == "show": print(f"📋 所有成绩:{scores}") elif cmd == "avg": if scores: avg = sum(scores) / len(scores) print(f"📊 平均分:{avg:.2f}") else: print("⚠️ 暂无成绩数据") elif cmd == "quit": print("👋 再见!") break else: print("❌ 无效命令,请重新输入")manage_scores()
这个程序融合了:列表的 append/len、while True 循环、if-elif 分支、函数封装,是前六课知识的完美综合。
五、新手避坑指南
- 索引越界:访问list[n]前务必确认n<len(list),或用if index < len(list)做保护。
- 混淆 append 和 extend:append([1,2])会把整个列表当作一个元素加入,得到 [...,[1,2]];extend([1,2])才会把元素逐个加入。
- 单元素元组漏逗号
- 遍历时修改列表:不要在 for item in list循环中直接删除列表元素,会导致跳过元素或报错。正确做法是遍历副本或用列表推导式生成新列表。
六、总结
- 列表 list
- 元组 tuple
- 索引从0开始:这是 Python 乃至大多数编程语言的通用规则。
- 选择原则
至此,你已经掌握了 Python 最核心的序列容器!下一课,我们将学习另一种极其重要的数据结构——字典(dict),它能用“键值对”的方式存储数据,让你的程序能像查词典一样快速精准地找到信息。