元组 tuple:不可变序列与应用场景

文章顶部广告位
728×90 或 336×280

一、引言

元组与列表类似,但不可修改!适合存储不应改变的数据!

💡 元组是"只读"的列表!

二、创建元组

# 空元组
empty_tuple = ()

# 有元素的元组
coordinates = (10, 20)  # 坐标
colors = ("red", "green", "blue")

# 单个元素的元组(注意逗号!)
single = (100,)  # 必须有逗号,否则会被当成整数

# 也可以省略括号
point = 10, 20
print(point)  # (10, 20)

三、访问元素

fruits = ("苹果", "香蕉", "橙子", "葡萄")

# 和列表一样的索引
print(fruits[0])  # 苹果
print(fruits[-1])  # 葡萄

# 切片
print(fruits[1:3])  # ("香蕉", "橙子")

四、元组的不可变性

fruits = ("苹果", "香蕉", "橙子")

# ❌ 错误:不能修改
# fruits[0] = "西瓜"  # 会报错!

# 但可以重新赋值(整个替换)
fruits = ("西瓜", "芒果")
print(fruits)

五、元组的常用操作

t1 = (1, 2, 3)
t2 = (4, 5, 6)

# 拼接
t3 = t1 + t2
print(t3)  # (1,2,3,4,5,6)

# 重复
t4 = t1 * 2
print(t4)  # (1,2,3,1,2,3)

# len()
print(len(t1))  # 3

# 成员判断
print(2 in t1)  # True

# index 和 count
print(t1.index(2))  # 1
print(t1.count(3))  # 1

六、元组解包

# 基本解包
x, y = (10, 20)
print(x)  # 10
print(y)  # 20

# 交换变量(Python 特有!)
a, b = 1, 2
a, b = b, a  # 一行就交换了!
print(a, b)  # 2 1

# 用 * 收集剩下的
first, *rest = (1, 2, 3, 4, 5)
print(first)  # 1
print(rest)   # [2,3,4,5]

七、什么时候用元组?

# 1. 数据不应该被修改
person = ("张三", 25, "北京")  # 姓名、年龄、城市

# 2. 作为字典的 key
position = (100, 200)
data = {position: "目标位置"}

# 3. 函数返回多个值
def get_size():
    return 1920, 1080  # 返回元组

width, height = get_size()

八、元组 vs 列表

# 列表:可变,需要修改时用
shopping_list = ["牛奶", "面包", "鸡蛋"]
shopping_list.append("饼干")

# 元组:不可变,固定数据用
week_days = ("周一", "周二", "周三", "周四", "周五", "周六", "周日")

九、课后练习题

# 练习 1:创建一个元组存储 3 个坐标
# 练习 2:用元组解包交换两个变量
# 练习 3:思考什么时候用列表,什么时候用元组

总结

通过本章学习,你应该已经掌握了「元组 tuple:不可变序列与应用场景」的相关知识。

元组很实用!下一章学习列表的排序和反转!

文章中间广告位
600×300 或 300×250
← 上一篇 下一篇 →
文章底部广告位
728×90 或 300×250