前面介绍了列表,列表是可修改的序列,其应用比较广泛。但有时我们又希望生成的列表不能修改,只能读,就像一些只读文件一样。用元组可满足这一需求,元组就是不可修改的序列。
定义列表用方括号,定义元组用圆括号。定义元组后,就可以使用索引访问元素,这一点与列表类似。
由此可知,定义只有一个元素的元组时,不能简单地给该元素加圆括号,否则这样得到的只是一个数字,而不是元组。那一个元素的元组如何定义呢?答案是在元素后加上一个逗号即可,如以下代码。
查看元组中的元素与查看列表中的元素一样,通过索引即可。
用list()函数可以把range生成的序列转换为列表,与此类似,可以用tuple()函数把range生成的序列转换为元组,也可用tuple()函数把列表转换为元组。
元组可作为字典中的键来使用(第5章将介绍,列表不能作为字典的键),内建函数、自定义函数的返回值(如enumerate(a1))大多都是元组形式。
元组有解包功能,所谓元组解包就是把元组中的各个元素分别赋给多个变量,这样可以避免使用循环,增强代码的可读性,也能使代码显得更简洁。元组解包功能在从数据集读取数据时经常会用到。
在深度学习中经常会遇到处理图像的数据与标签放在一个元组中的情况,可以通过元组解包的方式,把数据、标签分别存放在两个变量中,如以下实例。
运行结果如下。