Python零基础入门第五章:元组Tuple(不可变容器详解、列表与元组区别)

发布时间:2026/8/23 19:02:22
Python零基础入门第五章:元组Tuple(不可变容器详解、列表与元组区别) 专栏Python零基础全套入门教程 本章定位元组是 Python 四大容器之二也是面试高频考点。学会List可变vs Tuple不可变才算真正入门 Python 容器。✅ 学习目标掌握元组的定义、取值、切片、遍历理解元组不可变特性核心重难点掌握单元素元组坑点熟练区分列表和元组的使用场景掌握元组解包、数据交换高级用法一、什么是元组 Tuple元组是不可变的列表列表[]可变支持增、删、改元组()不可变定义完不能改、不能加、不能删元组和列表一样有序序列有下标支持任意数据类型支持切片、遍历、len、in 判断唯一区别元组只读、不可修改。二、元组定义语法# 1. 普通元组 t1 (10, 20, 30, 40) # 2. 混合类型元组 t2 (小明, 18, 175.5) # 3. 元组可以不带括号少见但合法 t3 1, 2, 3 print(t1) print(t2) print(t3) 新手超级大坑单元素元组下面这种写法不是元组t (100) print(type(t)) # int 整数定义单元素元组必须加逗号t (100,) print(type(t)) # tuple 元组记住逗号才是元组的灵魂括号不是。三、元组常用操作查元组只支持查不支持改、增、删。3.1 下标取值t (苹果, 香蕉, 橙子) print(t[0]) print(t[-1])3.2 切片取值t (11, 22, 33, 44, 55) print(t[1:4]) print(t[:3]) print(t[::-1])3.3 长度、成员判断t (10,20,30) print(len(t)) print(20 in t) print(99 in t)四、元组不可变验证核心考点元组内元素不允许修改、增加、删除❌ 以下代码全部报错t (10,20,30) t[0] 999 # 报错不支持修改 t.append(40) # 报错没有append方法 del t[1] # 报错不支持删除 不可变的意义数据安全重要数据防止被误改代码更稳定、不易出 Bug可以作为字典 key列表不行五、元组遍历for / while和列表遍历完全一致5.1 for 直接遍历t (张三, 李四, 王五) for name in t: print(name)5.2 enumerate 带下标遍历t (张三, 李四, 王五) for idx, val in enumerate(t): print(f下标{idx}{val})5.3 while 遍历t (100, 200, 300) i 0 while i len(t): print(t[i]) i 1六、元组高级用法开发超常用6.1 元组解包快速把元组元素赋值给多个变量t (10, 20) a, b t print(a) print(b)数量必须匹配否则报错。6.2 变量交换经典面试题a 100 b 200 # 一行代码交换两个变量 a, b b, a print(a, b)原理右边先打包成元组左边解包赋值。6.3 列表 元组互转# 列表转元组 lst [1,2,3] t tuple(lst) # 元组转列表 t2 (4,5,6) lst2 list(t2) print(t) print(lst2)开发用途不想数据被改时转成元组保护数据。七、列表 List vs 元组 Tuple 终极区别面试必背特性列表 List []元组 Tuple ()可变性可变增删改都可以不可变只读速度较慢更快、更轻量安全性低容易被误改高数据固定安全常用场景频繁变动的数据固定不变的数据配置、坐标、常量八、本章完整综合代码# 第五章 元组 Tuple 完整示例 # 1. 定义元组 t1 (11, 22, 33, 44) t2 (小明, 18, 172.5) # 2. 取值与切片 print(t1[0]) print(t1[-1]) print(t1[1:3]) # 3. 遍历 for v in t2: print(v) # 4. 元组解包 a, b, c (100, 200, 300) print(a, b, c) # 5. 类型转换 lst [9,8,7] new_tuple tuple(lst) print(new_tuple)九、第五章课后习题 标准答案基础题1. 定义一个元组保存张三,李四,王五使用 for 循环全部遍历输出。2. 创建一个单元素元组内容为 666并打印类型验证。3. 使用切片取出元组t (10,20,30,40,50,60)的后三个元素。进阶题4. 给定列表data [11,22,33,44]转为元组并打印。5. 使用元组解包一次性取出元组stu (小红, 20, 99)的姓名、年龄、分数并格式化输出。6. 简述列表和元组的区别和使用场景面试简答题参考答案# 1. 遍历元组 name_tuple (张三, 李四, 王五) for name in name_tuple: print(name) # 2. 单元素元组 num (666,) print(type(num)) # 3. 切片后三位 t (10,20,30,40,50,60) print(t[-3:]) # 4. 列表转元组 data [11,22,33,44] t_data tuple(data) print(t_data) # 5. 元组解包 stu (小红, 20, 99) name, age, score stu print(f姓名{name}年龄{age}分数{score})面试简答题答案列表是可变序列支持增删改查适合数据会频繁变动的场景元组是不可变序列数据只读、安全、速度更快适合固定不变的常量数据、配置数据、坐标数据。十、下期预告下一章第六章 字典 DictPython核心重难点字典是以后爬虫、数据分析、接口开发、JSON 处理用得最多的数据结构必学重点 点赞 收藏 关注零基础Python系统化学习持续更新