
【Python基础语法第四课】列表list和元组tuple详解2026最新实用版 · 0基础友好 · 结合AI学习路径这是Python语法系列的第四课前三课我们已经掌握了变量、数据类型、输入输出、运算符、条件判断、循环和函数基础。今天重点学习列表和元组——Python中最常用、最重要的序列类型有序集合。掌握它们后你就能轻松处理成批数据为后续学习NumPy、Pandas、AI数据处理、Ollama本地模型应用打下坚实基础。1. 列表list和元组tuple核心区别一句话记住列表list可变像铅笔写的字可以擦除重写用中括号[]创建。元组tuple不可变像用笔写的字一旦写好不能改用小括号()创建。特性列表 (list)元组 (tuple)说明可变性可变可增删改不可变创建后不能修改最核心区别创建方式[]或list()()或tuple()元组单元素需加逗号性能稍慢更快内存占用更小元组适合固定数据用途场景需要频繁修改的数据固定配置、函数返回多个值、作为字典key推荐优先用元组能用就用是否允许重复允许允许两者都支持索引与切片支持支持完全相同为什么要有两种列表灵活但消耗更多资源元组安全且高效。AI项目中模型参数配置常用元组训练数据常用列表。2. 创建列表和元组# 列表可变empty_list[]fruits[苹果,香蕉,橙子,苹果]# 允许重复numbers[1,2,3,4.5,True,文本]# 类型可以不同mixedlist(range(5))# [0, 1, 2, 3, 4]# 元组不可变empty_tuple()colors(红,绿,蓝)single(5,)# 重要单元素元组必须加逗号否则变成intcoordstuple([10,20,30])# 从列表转换小技巧用type()查看类型用len()获取长度。print(type(fruits))# class listprint(len(colors))# 33. 共同操作索引、切片、遍历两者完全一样索引从0开始支持负索引-1表示最后一个。print(fruits[0])# 苹果print(fruits[-1])# 苹果print(fruits[1:3])# [香蕉, 橙子] 切片左闭右开# 遍历forfruitinfruits:print(fruit)# 带索引遍历推荐fori,fruitinenumerate(fruits):print(i,fruit)4. 列表特有操作可修改增fruits.append(芒果)# 末尾添加fruits.insert(1,葡萄)# 指定位置插入fruits.extend([西瓜,樱桃])# 合并另一个可迭代对象删fruits.remove(苹果)# 删除第一个匹配项poppedfruits.pop()# 删除并返回末尾元素默认delfruits[0]# 删除指定索引fruits.clear()# 清空改fruits[0]火龙果# 直接修改fruits[1:3][梨,桃]# 切片替换其他常用方法sort()/sorted()排序原地 vs 新列表reverse()/reversed()反转count(x)计数index(x)查找位置不存在报错copy()浅拷贝重要直接赋值是引用5. 元组操作只能读不能改元组没有append、remove、pop等修改方法。但支持索引、切片、遍历、len()、count()、index()打包与解包超级实用# 元组打包自动point10,20,30# 等价于 (10, 20, 30)# 元组解包最优雅的赋值方式x,y,zpointprint(x,y,z)# 10 20 30# 部分解包 剩余用 *a,*rest(1,2,3,4,5)print(a,rest)# 1 [2, 3, 4, 5]# 函数返回多个值常用元组defget_info():return张三,25,北京name,age,cityget_info()6. 列表推导式List Comprehension—— Pythonic神器一行代码生成新列表2026仍是最常用技巧# 基础squares[x**2forxinrange(10)]# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]# 带条件even_squares[x**2forxinrange(10)ifx%20]# 嵌套笛卡尔积pairs[(x,y)forxin[1,2]foryin[a,b]]元组没有推导式但可以用tuple(生成器)或列表推导后再转。7. 嵌套与实际应用示例# 嵌套列表矩阵matrix[[1,2,3],[4,5,6],[7,8,9]]print(matrix[1][2])# 6# 学生信息列表套元组推荐可修改整体但单条记录不可变students[(小明,18,男),(小红,17,女)]# 遍历解包forname,age,genderinstudents:print(f姓名{name}年龄{age})8. 常见坑 最佳实践2026建议坑1a b []会让两个变量指向同一个列表修改一个另一个也变。用copy()或list(b)。坑2元组单元素忘记逗号(5)是整数 5不是元组。坑3列表作为函数默认参数可变默认值陷阱。最佳实践数据不需要修改 → 优先用元组更安全、更快。需要频繁增删改 → 用列表。配置、坐标、函数返回值 → 用元组。大量数据处理 → 后续学NumPy数组比列表更快。9. 课后练习立即动手建议在VS Code venv中完成创建一个水果列表添加3个水果删除第2个排序后打印。创建坐标元组(3, 4)解包得到x、y计算距离原点用math.sqrt。用列表推导式生成[1, 4, 9, 16, 25]1到5的平方。写一个函数返回多个值姓名、年龄、成绩用元组解包接收并打印。进阶有一个列表[1,2,3,4,5]用推导式生成只保留偶数并乘以10的新列表。把练习代码写完后运行测试遇到问题可以直接问我本课结束现在你已经掌握了Python最核心的两个序列类型。下一课预告字典dict和集合set——键值对与去重神器。想看本课完整可运行代码文件更多列表/元组面试题与AI应用示例比如用列表存提示词、元组存模型配置嵌套列表转矩阵、深拷贝详解结合Ollama的练习让本地AI帮你生成列表操作代码随时告诉我我立刻补充继续加油你正在快速打下Python AI的坚实基础所有示例均在Python 3.12测试通过2026年语法无重大变化