Python 基础入门(第五篇):列表与元组——管理一组数据
前面我们学会了用变量存储单个数据,但现实中经常要处理一组数据,比如全班同学的姓名、一周的气温。
Python 中的列表(list)和元组(tuple)就是用来存储多个数据的容器。两者非常相似,核心区别是:列表可以随意增删改,而元组一旦创建就不能修改。
1. 列表:可变的数据集合
列表用方括号 [] 表示,元素之间用逗号隔开。
1.1 创建与访问
fruits = ["苹果", "香蕉", "橙子"]
print(fruits[0])# 输出:苹果(索引从0开始)
print(fruits[-1])# 输出:橙子(-1表示最后一个元素)

1.2 常用操作
fruits.append("葡萄")# 末尾添加
fruits.insert(1, "芒果")# 在索引1位置插入
fruits.remove("香蕉")# 删除指定值
popped = fruits.pop()# 删除并返回最后一个元素
fruits.sort()# 排序(默认升序)
fruits.reverse()# 反转顺序
print(len(fruits))# 获取长度

1.3 列表切片
切片可以获取列表的子集:列表[开始:结束:步长]
numbers = [0, 1, 2, 3, 4, 5]
print(numbers[1:4])# [1, 2, 3]
print(numbers[:3])# [0, 1, 2]
print(numbers[::2])# [0, 2, 4]

2. 元组:不可变的数据集合
元组用圆括号 () 表示,一旦创建,内容无法修改。
point = (10, 20)# 坐标点
color = (255, 0, 0)# RGB颜色值
print(point[0])# 10
# point[0] = 30# 报错!元组不支持修改

元组常用于保护数据不被意外修改,或者作为字典的键(列表不行)。即使只有一个元素,也要加逗号:single = (5,)。
3. 遍历列表/元组
用 for 循环可以遍历容器中的每一个元素:
for fruit in fruits:
print(fruit)

如果需要同时获取索引和值,用 enumerate:
for i, fruit in enumerate(fruits):
print(f"{i}: {fruit}")

4. 列表推导式(简洁生成列表)
可以用一行代码快速生成新列表:
# 生成1到10的平方数
squares = [x**2 for x in range(1, 11)]
print(squares)# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 带条件的推导式:偶数平方
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squares)# [4, 16, 36, 64, 100]

5. 小实战:购物清单管理
shopping_list = []
while True:
print("\n1. 查看清单2. 添加物品3. 删除物品4. 退出")
choice = input("请选择操作:")
if choice == "1":
print("购物清单:", shopping_list)
elif choice == "2":
item = input("输入物品名:")
shopping_list.append(item)
print(f"已添加{item}")
elif choice == "3":
item = input("输入要删除的物品:")
if item in shopping_list:
shopping_list.remove(item)
print(f"已删除{item}")
else:
print("清单中没有该物品")
elif choice == "4":
break
else:
print("无效选项")

这个程序用列表管理购物项,用户可以增删查,直观地展示了列表的实用性。
动手写写购物清单程序,体会列表的魅力!
6. 常见错误
索引越界:访问不存在的索引(如长度为3的列表,索引3不存在)会报 IndexError。
混淆列表和元组:误以为元组可修改,试图赋值会报错。
忘记逗号的单元素元组:(5) 是整数,不是元组;(5,) 才是元组。
小结:列表和元组是 Python 中最常用的数据结构,列表灵活可变,适合频繁修改的场景;元组不可变,适合存储固定数据。
【下篇预告】字符串的常用方法,掌握字符串的切割、替换、格式化等技巧。
相关推荐
AI世界观(二):人工智能的“前世今生”,从图灵测试到深度学习
End