今天我们将探讨元组,Python中不可变的列表兄弟。
如果你已经掌握了列表,学习元组就很简单——但知道何时使用它们才会让你的代码更简洁、更安全、更快速。
让我们深入了解吧。🐍
📦 你将学到什么
- 元组是什么以及它们与列表的区别
- 如何创建和访问元组
- 何时使用元组而不是列表
- 实际应用案例
- 元组技巧(解包、交换、返回多个值)
🧱 什么是元组?
元组是一个有序、不可变的项目集合。
这意味着你可以像访问列表一样访问其元素,但一旦创建后你无法更改它们。
🔹 语法:
my_tuple = (1, 2, 3)
是的,它们看起来像列表,但使用括号 ()
而不是方括号 []
。
🔍 元组与列表
特性 | 列表 | 元组 |
---|---|---|
语法 | [] |
() |
可变性 | ✅ 是 | ❌ 否 |
速度 | ❌ 稍慢 | ✅ 稍快 |
可哈希性 | ❌ 否 | ✅ 是(如果不可变) |
使用场景 | 动态数据 | 固定数据 |
🛠 如何创建元组
1. 基本元组
person = ("Alice", 30, "Engineer")
2. 无括号的元组(Python允许)
coordinates = 10, 20
3. 单元素元组(必须包含逗号!)
single = (42,) # ✅ 元组
not_a_tuple = (42) # ❌ 只是一个整数
🎯 访问元组元素
像列表一样使用 索引和切片:
colors = ("red", "green", "blue")
print(colors[0]) # 'red'
print(colors[-1]) # 'blue'
print(colors[1:3]) # ('green', 'blue')
❌ 元组是不可变的
一旦创建,您无法修改、添加或删除元素:
colors[0] = "yellow" # ❌ 错误:'tuple' 对象不支持项赋值
✅ 何时使用元组
- 固定的数据集合:如(纬度,经度)
- 函数返回值:干净地返回多个值
- 作为字典键:仅允许可哈希类型
- 更快的性能: 轻微的速度优势
- 安全性: 防止意外修改
🧪 真实世界示例
1. 返回多个值
def get_user():
return ("Alice", 25)
name, age = get_user()
print(name, age)
2. 存储坐标
point = (10.5, 20.3)
元组适用于固定数据,其中像 x
和 y
这样的名称是隐含的。
3. 字典键示例
location_data = {
(28.6139, 77.2090): "德里",
(40.7128, -74.0060): "纽约"
}
你不能使用列表作为键,但元组是允许的。
🪄 元组技巧
1. 元组解包
name, age, city = ("John", 30, "Paris")
2. 变量交换(Pythonic方式)
a, b = 5, 10
a, b = b, a
3. 嵌套元组
matrix = ((1, 2), (3, 4))
print(matrix[1][0]) # 3
✅ 回顾
今天你学到了:
-
- 元组是什么以及它们与列表的区别
-
- 如何创建、访问和解包元组
-
- 在处理固定数据时,元组的有用性
-
- 元组在现实场景中的常见使用案例
-
- 解包和交换等元组技巧