第四章:数据结构(上)——列表与元组的恩怨情仇
1. 数据结构:给数据建个“高档小区”
各位少侠,前两章我们学了变量(便利贴),但现实世界里,数据往往是扎堆出现的。比如你要存全班50个人的名字,难道要写50个变量吗?name1 = "张三", name2 = "李四"……写到50你早就疯了。
这时候,你就需要给数据建个“小区”——这就是数据结构。在Python的“数据结构小区”里,今天我们要认识两位性格截然不同的明星住户:灵活多变的列表(List)和死板固执的元组(Tuple)。
2. 列表(List):无所不能的“超级购物车”
列表是Python里最常用、最万金油的数据结构。你可以把它想象成超市里的购物车,想往里塞什么就塞什么,而且随时可以拿出来、换掉或者扔掉。
创建列表:用中括号 [] 包裹,元素之间用逗号隔开。
python
fruits = ["苹果", "香蕉", "橘子"]
mixed_list = [1, "Hello", 3.14, True] # 列表里甚至可以混装不同类型的数据!
列表的“超能力”:
- 增删改查:
- 增加:
fruits.append("西瓜")把西瓜塞进购物车尾部。 - 删除:
fruits.remove("香蕉")把香蕉扔掉。 - 修改:
fruits[0] = "红富士"把第一个苹果换成红富士。 - 查询:
fruits[1]拿到第二个元素(记住,索引是从0开始的!)。
- 增加:
- 切片(Slicing):像切香肠一样截取列表的一部分。
fruits[1:3]会拿到索引为1和2的元素(不包含3)。
3. 元组(Tuple):签了卖身契的“铁饭碗”
如果说列表是随便改的购物车,那元组就是焊死的保险箱。一旦创建,里面的数据绝对不能修改、不能增加、不能删除!
创建元组:用小括号 () 包裹。
python
coordinates = (10, 20)
rgb_color = (255, 128, 0)
既然列表这么好用,为什么还要搞个元组? 因为“不可变”是它最大的优点!
- 安全:有些数据(比如身份证号码、GPS坐标)一旦生成就绝不该被篡改,用元组能防止你手滑改错。
- 性能:Python底层对元组做了大量优化,它的创建速度和内存占用都比列表优秀。
4. 列表与元组的“相爱相杀”
在实际开发中,你经常需要把它们互相转换。Python提供了极其优雅的转换函数:
python
my_tuple = (1, 2, 3)
my_list = list(my_tuple) # 把元组变成列表,解锁修改权限
my_list.append(4)
back_to_tuple = tuple(my_list) # 把列表变回元组,重新焊死
5. 本章小结与课后“折磨”
今天你认识了Python数据结构的两大基石:列表(List)是灵活的购物车,适合频繁增删改查;元组(Tuple)是焊死的保险箱,适合存储不可变的核心数据。
课后小挑战:
- 创建一个包含5个你最喜欢的电影名字的列表
movies。 - 用
append()加一部新电影,然后用remove()删掉你最不喜欢的那部。 - 用切片
movies[1:3]打印出中间的两部电影。 - 创建一个包含你出生年月日的元组
birthday,并尝试修改它(放心大胆地改,看看Python会怎么无情地报错)。
敲完代码,恭喜你,你已经掌握了Python里最强大的收纳神器!下一节,我们将解锁更高级的键值对哲学——字典与集合!
本文由 AI 辅助生成
参考资料:
- Python官方列表与元组文档:https://docs.python.org/zh-cn/3/tutorial/datastructures.html
- Python官方序列类型文档:https://docs.python.org/zh-cn/3/library/stdtypes.html#sequence-types-list-tuple-range
- Real Python列表与元组教程:https://realpython.com/python-lists-tuples/