![Python编程基础与应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/854/41309854/b_41309854.jpg)
2.3.1 元组及其创建
元组(tuple)与列表一样,也是一种序列,唯一的不同就是元组不能修改(包括修改元素值、删除和插入元素),而列表的元素是可以更改的列表,是可变序列。元组也可以看作是不可变的列表,在通常情况下,元组用于保存无须修改的内容。
从形式上看,元组的所有元素都放在一对小括号“()”中,相邻元素之间用逗号“,”分隔,如下所示:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/61_02.jpg?sign=1738871076-3zyflEW1jL6DJvFgDdC7jFi6Mq3ddhRr-0-9f7ac8f54924829c2b3ce3c674d8176a)
其中element1~elementn表示元组中的各个元素,个数没有限制,只要是Python支持的数据类型就可以。
从存储内容上看,元组可以存储整数、实数、字符串、列表、元组等任何类型的数据,并且在同一个元组中,元素的类型可以不同。
Python提供了两种创建元组的方法。
(1)使用“( )”直接创建
通过“()”创建元组后,一般使用“=”将它赋值给某个变量,具体格式为:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/61_03.jpg?sign=1738871076-No2Q7U5FXnByLtmDDQu1NOCGz2N9gHyj-0-da70d7248e53e7b37d596ef73f79b558)
其中,tuplename表示变量名,element1~elementn表示元组的元素。
在Python中,元组通常都是使用一对小括号将所有元素包围起来的,但小括号不是必需的,只要将各元素用逗号隔开,Python就会将其视为元组。在显示只有1个元素的tuple时,需要加一个逗号,如t=(1,),以免误解成数学计算意义上的括号。
【例2-25】 使用“()”创建多个元组。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/61_04.jpg?sign=1738871076-G6YxLnr2n20ya6svXHbYjr4PmsUQ0tx0-0-74ac144f5e578ebaddef09388d925400)
需要注意的一点是,当创建的元组中只有一个字符串类型的元素时,该元素后面必须加一个逗号,否则Python解释器会将它视为字符串。
【例2-26】 一个字符串类型元素时的元组。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/61_05.jpg?sign=1738871076-hw1lThlLmfwzfzTYQOOM16ZruRTppP0j-0-56bf6e87e90567589cfa18689f8f8449)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/62_01.jpg?sign=1738871076-HJbnsusfhwEb5cfReEQgTnGlNAAnOudB-0-d077b1b8b94b49b3b8489121e46f895f)
本例中可以看出,只有变量a才是元组,后面的变量b是一个字符串。
(2)使用tuple()函数创建元组
除了使用“( )”创建元组外,Python还提供了一个内置的函数tuple(),用来将其他数据类型转换为元组类型。
tuple()的语法格式如下:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/62_02.jpg?sign=1738871076-HVQRsWiKzwRDLjN99CCSwwbGOhK79Fv4-0-772b72a3aab1ed1f565307258e3e1396)
其中,data表示可以转化为元组的数据,包括字符串、元组、range对象等。
【例2-27】 使用tuple()函数创建多个元组。
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/62_03.jpg?sign=1738871076-yE7VFRwDUlly68K1zhhjKT0YBEQR53Xp-0-180b9cdb05c1779c483cd749b543ec71)
运算结果:
![](https://epubservercos.yuewen.com/F38A38/21511156801516706/epubprivate/OEBPS/Images/62_04.jpg?sign=1738871076-2UZbPQyvC9drRdJWyvvXTz6inLCymrty-0-3ab40a5413fcd62026883cb0881df56f)