苦练Python第23天:元组秘籍与妙用
前言
大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!
欢迎来到《100天Python》第23天!
今天我们深入探索元组(tuple)——Python 里列表的“不可变兄弟”。如果你已经玩转了列表,那么掌握元组只需十分钟,但何时使用它才是让代码更简洁、更安全、更高效的关键。让我们开卷!🐍
📦 今日知识清单
- 元组是什么,与列表有何不同创建与访问元组的正确姿势何时该用元组而非列表真实场景案例元组黑科技:拆包、交换、多值返回
🧱 什么是元组?
元组是一个有序且不可变的集合。
也就是说,你可以像列表一样索引,但创建后不能修改任何元素。
🔹 语法
my_tuple = (1, 2, 3)
看起来和列表相似,只是用圆括号()
代替方括号[]
。
🔍 元组 vs 列表
特性 | 列表 [] | 元组 () |
---|---|---|
可变性 | ✅ 可变 | ❌ 不可变 |
速度 | 略慢 | ✅ 略快 |
是否可哈希 | ❌ | ✅ |
典型场景 | 动态数据 | 固定数据 |
🛠 创建元组
1. 基础写法
person = ("Alice", 30, "Engineer")
2. 省略括号(Python 允许)
coordinates = 10, 20
3. 单元素元组(必须带逗号!)
single = (42,) # ✅ 元组not_a_tuple = (42) # ❌ 只是整数
🎯 访问元素
索引与切片语法与列表一致:
colors = ("red", "green", "blue")print(colors[0]) # redprint(colors[-1]) # blueprint(colors[1:3]) # ('green', 'blue')
❌ 不可变特性
一旦创建,无法增删改:
colors[0] = "yellow"# TypeError: 'tuple' object does not support item assignment
✅ 何时使用元组
- 固定数据集:如 (纬度, 经度)函数多值返回:优雅地一次返回多个结果字典键:仅可哈希类型可用性能优化:迭代速度略胜列表数据安全:防止误改
🧪 真实场景示例
1. 多值返回
def get_user(): return ("Alice", 25)name, age = get_user()print(name, age) # Alice 25
2. 坐标存储
point = (10.5, 20.3)
无需额外字段名,x
与 y
含义天然对应。
3. 作为字典键
location_data = { (28.6139, 77.2090): "Delhi", (40.7128, -74.0060): "New York"}
列表不能充当键,而元组可以。
🪄 元组黑科技
1. 拆包赋值
name, age, city = ("John", 30, "Paris")
2. 变量交换(Pythonic)
a, b = 5, 10a, b = b, a
3. 嵌套元组
matrix = ((1, 2), (3, 4))print(matrix[1][0]) # 3
✅ 速览总结
- 元组:有序、不可变、轻量、安全创建:
(item,)
注意逗号访问:索引、切片、拆包场景:固定数据、函数多值返回、字典键、性能敏感区技巧:拆包、交换、嵌套最后感谢阅读!欢迎关注我,微信公众号:
倔强青铜三
。欢迎点赞
、收藏
、关注
,一键三连!!!