
2.3.1 元组及其创建
元组(tuple)与列表一样,也是一种序列,唯一的不同就是元组不能修改(包括修改元素值、删除和插入元素),而列表的元素是可以更改的列表,是可变序列。元组也可以看作是不可变的列表,在通常情况下,元组用于保存无须修改的内容。
从形式上看,元组的所有元素都放在一对小括号“()”中,相邻元素之间用逗号“,”分隔,如下所示:

其中element1~elementn表示元组中的各个元素,个数没有限制,只要是Python支持的数据类型就可以。
从存储内容上看,元组可以存储整数、实数、字符串、列表、元组等任何类型的数据,并且在同一个元组中,元素的类型可以不同。
Python提供了两种创建元组的方法。
(1)使用“( )”直接创建
通过“()”创建元组后,一般使用“=”将它赋值给某个变量,具体格式为:

其中,tuplename表示变量名,element1~elementn表示元组的元素。
在Python中,元组通常都是使用一对小括号将所有元素包围起来的,但小括号不是必需的,只要将各元素用逗号隔开,Python就会将其视为元组。在显示只有1个元素的tuple时,需要加一个逗号,如t=(1,),以免误解成数学计算意义上的括号。
【例2-25】 使用“()”创建多个元组。

需要注意的一点是,当创建的元组中只有一个字符串类型的元素时,该元素后面必须加一个逗号,否则Python解释器会将它视为字符串。
【例2-26】 一个字符串类型元素时的元组。

运算结果:

本例中可以看出,只有变量a才是元组,后面的变量b是一个字符串。
(2)使用tuple()函数创建元组
除了使用“( )”创建元组外,Python还提供了一个内置的函数tuple(),用来将其他数据类型转换为元组类型。
tuple()的语法格式如下:

其中,data表示可以转化为元组的数据,包括字符串、元组、range对象等。
【例2-27】 使用tuple()函数创建多个元组。

运算结果:
