![Python从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/265/27563265/b_27563265.jpg)
4.4 元组
还有一种序列是元组,它与列表十分类似,不同之处在于,列表中的元素可以被修改,而元组中的元素不能修改;在写法上,列表使用方括号定义,而元组使用圆括号定义。
4.4.1 直接创建元组
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P67_38619.jpg?sign=1739664098-Wmyurq0jZABNFjJz0drJYblpgEwm3T3v-0-bbdfd0037c6d065f5d5ed82ef1876d5c)
最基本的方法是用圆括号创建元组,括号里的元素用逗号隔开。逗号必须存在,当元组中仅有一个元素时,在其后面必须加上逗号来消除歧义。Python中,用来定义元组的关键信息是逗号,有时圆括号都可以省略。使用圆括号时,若不向圆括号中输入任何元素,则会创建一个空元组。
【例4-14】用圆括号创建元组。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P67_78760.jpg?sign=1739664098-5vsVsiqh8BzpSH8evjY8os259vMxn3lR-0-01da6424734ce7824492d4ff7c78ffba)
程序运行结果如图4-15所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P67_38612.jpg?sign=1739664098-2rm72po58xtjYQJqW3Gg001sbrei2nyi-0-063b47c2e6f7a680afe7f0535f71c3e6)
图4-15 创建元组运行程序
4.4.2 用tuple()函数创建元组
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38733.jpg?sign=1739664098-9X4L5nL4LkGYxOhIgxHu4xzxEinB7mCV-0-1f8291f5fde9e269c3778c377c3155dc)
使用tuple()函数能够将其他数据结构对象转换成元组的类型。常见的是将一个列表转换成元组,需要先创建一个列表并把元素存入其中。tuple()在使用时需要在列表最外层加入圆括号来说明转换对象。
【例4-15】用tuple()函数创建元组。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_78761.jpg?sign=1739664098-Q9vLtxbJlapKFchARrqXPEpek7ylFeBH-0-51e5d4d3f277d5b13dd75213cb72845d)
程序运行结果如图4-16所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38660.jpg?sign=1739664098-vCR8u4PsDUl0spikosB9EU8TvGjVS4X2-0-e5afe84347c940ff6c78d9d9bdf72753)
图4-16 创建元组运行程序
4.4.3 元组元素提取
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38739.jpg?sign=1739664098-4NuHnduejW9ZGlShcmOchFVomFZTG2H5-0-a3f32a21db67af447b99f3a42a14ee3c)
元组是不可变的元素,虽然不能和列表一样对里面的元素进行增删改,但仍然可以对元组内的元素进行索引、访问、提取和切片的操作。其中,对于元组元素的提取,可以使用元组解包简化赋值操作。
(1)索引提取元素:利用序列的索引进行元素提取。通过元素的位置提取元素,需要注意元组的长度,不能超出索引范围。
【例4-16】索引访问元素。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_78762.jpg?sign=1739664098-pbg1swXlfkfkvfrTkGxEvQutH18ep3NP-0-5e7891ff776cb18f2564a9415141d0d5)
程序运行结果如图4-17所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38684.jpg?sign=1739664098-hv9X8BsL7wTkzGpJnZalTlERh5buukPW-0-1f0cb753cd7b4579018caef03145acc9)
图4-17 索引提取元素运行程序
(2)切片提取元素:获取元组的切片,无须考虑超出索引范围的问题。需要注意的是,元组的切片也是一个元组。
【例4-17】切片访问元素。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_78763.jpg?sign=1739664098-gC4PecRKb4xiNyKHxcaRvlvXnWhUWhXk-0-aed086b72af616e4130a15af4ffc4229)
程序运行结果如图4-18所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38707.jpg?sign=1739664098-n3t0d5vw6SFzyXYYQgjjvggJy5pcHsYR-0-5f5ceb7b042c49889cb03f69f30b760c)
图4-18 切片提取元素运行程序
(3)元组解包:利用Python语言的灵活性,将元组中的元素赋值给多个变量。
【例4-18】元组解包。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_78764.jpg?sign=1739664098-GGxE19ZWrGyNnyxjgrqDHRai9ErRBjtK-0-3d7c835a8982c7ffcf6f73f8a14519b5)
程序运行结果如图4-19所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P69_38748.jpg?sign=1739664098-HKP1Go76KBph5BZBIqiMa9y1wIp30qEt-0-84dbed1c6c47eafa02043873849436af)
图4-19 元组解包运行程序
4.4.4 元组常用操作方法
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P69_38893.jpg?sign=1739664098-GdBnziGaqYjKpovuZj57CIYSdLV6nIMj-0-92345e2a8881ce692f31826fa1a588c0)
由于元组无法修改元素,相对于列表操作的范围就比较小,常见的仍然是对元组进行元素位置查询等操作。下面列出了一些常用于操作元组的方法。
+:将两个元组合并为一个元组。
*:重复合并同一个元组为一个更长的元组。
len:获取元组长度。
sorted:创建对元素进行排序后的列表。
tuple.count:记录某个元素在元组中出现的次数。
tuple.index:获取元素在元组当中第一次出现的位置的索引。
【例4-19】元组的基本操作。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P69_78766.jpg?sign=1739664098-LdTw9eFE3fMO5zjQoOZLvij5xcCN7O8v-0-8dd5ad179062438721028cacf57a8a4a)
程序运行结果如图4-20所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P69_38886.jpg?sign=1739664098-VvRLoc5wMAlsE4V2gCkm3yDFrFeAB2P5-0-2c3ea542c9786bd1b131ae14bc895961)
图4-20 元组基本操作运行程序