在编程的世界中,我们经常需要把一组数据放在一起使用。

有时候,这组数据一旦确定,就不希望被改动,比如出生日期、常量设置、地理坐标等。这时候,“元组”就像一只上了锁的玻璃宝盒,里面的宝贝可以看,但不能改!

一、什么是元组

元组跟列表很像,都是可以装很多内容的容器,但元组一旦创建,里面的内容就不能被修改。这是它最大的特点,也叫“不可变”。

元组的写法和列表类似,但用的是圆括号 ():

birthday = ("2013", "10", "15")
print(birthday)

输出:

('2013', '10', '15')

二、元组 vs 列表,有什么不同?

元组的“不可变”让它更加安全,也能被用在某些需要固定值的场合。

三、访问元组中的内容

和列表一样,元组也用索引访问,仍然从 0 开始:

birthday = ("2013", "10", "15")
print(birthday[0])  # 输出年 2013
print(birthday[1])  # 输出月 10

四、不能改是真的!

如果你尝试修改元组里的内容,会怎么样?

birthday = ("2013", "10", "15")
birthday[1] = "12"

会报错:

TypeError: 'tuple' object does not support item assignment

元组是“只读宝盒”,你只能看,不能动。

五、元组可以打包和解包

Python 里有个很棒的技巧,叫“打包”和“解包”。

打包:

把多个值装进一个元组。

解包:

把元组里的内容,一次性赋值给多个变量。

info = ("小明", 12, "六年级")    # 打包
name, age, grade = info         # 解包
print(name)
print(age)
print(grade)

输出:

小明
12
六年级

这就像把一个快递箱一次性拆开,里面的东西各归其位。

六、元组也可以用于循环和组合

元组虽然不能改,但可以遍历:

birthday = ("2013", "10", "15")

for item in birthday:
    print(item)

输出:

2013
10
15

元组也可以和列表、字符串一样配合 len()、in 来用:

birthday = ("2013", "10", "15")

print(len(birthday))        # 元素数量
print("10" in birthday)     # 是否包含某项

小贴士:元组也可以只写一个元素!

写一个元素的元组时,要加一个英文逗号:

one = ("Python",)  # 注意最后的逗号
print(type(one))   #

如果没有逗号,Python 会把它当作字符串。请自己测试一下吧。

✏️ 小练习:我最喜欢的三样东西

创建一个元组 favorites,包含你最喜欢的三样东西,比如:

favorites = ("猫咪", "草莓蛋糕", "科学小说")

然后:

(1)打印整个元组;

(2)解包到三个变量中,分别打印;

(3)写一个循环,打印出每一样喜欢的理由,比如:

我喜欢猫咪,因为它们软软的
我喜欢草莓蛋糕,因为它甜甜的
我喜欢科学小说,因为它有趣

点赞有美意,赞赏是鼓励