![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=1738828272-4U3q5qzg9MK3LnB7BvSCFUSecSYTzUBy-0-fa508fdf5a45da1d834ed128c4c40ce0)
最基本的方法是用圆括号创建元组,括号里的元素用逗号隔开。逗号必须存在,当元组中仅有一个元素时,在其后面必须加上逗号来消除歧义。Python中,用来定义元组的关键信息是逗号,有时圆括号都可以省略。使用圆括号时,若不向圆括号中输入任何元素,则会创建一个空元组。
【例4-14】用圆括号创建元组。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P67_78760.jpg?sign=1738828272-Y5VL09lCNY1Jjl4JhGCUPLcIFbSw03zQ-0-8a1cd5cf636a15c5459546a19ecdf89c)
程序运行结果如图4-15所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P67_38612.jpg?sign=1738828272-6YUasV7kI3zpo7JnRKGc5l8lHjTv6dO0-0-b9853f3b82fb7f64383df0338d5fc3ee)
图4-15 创建元组运行程序
4.4.2 用tuple()函数创建元组
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38733.jpg?sign=1738828272-x0VpqXhN2xL0bbvtIAu9jNkGL6F4DgNt-0-58e0a4b977bf20990d0ec2052c322a5e)
使用tuple()函数能够将其他数据结构对象转换成元组的类型。常见的是将一个列表转换成元组,需要先创建一个列表并把元素存入其中。tuple()在使用时需要在列表最外层加入圆括号来说明转换对象。
【例4-15】用tuple()函数创建元组。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_78761.jpg?sign=1738828272-DP4hZvzkBwR8hptLftoUehLJTqoKbeVI-0-8726fca76bd9af11a323741e030f7a23)
程序运行结果如图4-16所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38660.jpg?sign=1738828272-6R0PlJVPPhxfRUg2137PIe6uo2gGX64I-0-36a81baaf1869e311f81c8367ea11096)
图4-16 创建元组运行程序
4.4.3 元组元素提取
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38739.jpg?sign=1738828272-O6Kht3TxePfOaVoQDk6q0iXblE1cXlSm-0-6b8bb7e08b9d6ba1cf39d8dd79295fbf)
元组是不可变的元素,虽然不能和列表一样对里面的元素进行增删改,但仍然可以对元组内的元素进行索引、访问、提取和切片的操作。其中,对于元组元素的提取,可以使用元组解包简化赋值操作。
(1)索引提取元素:利用序列的索引进行元素提取。通过元素的位置提取元素,需要注意元组的长度,不能超出索引范围。
【例4-16】索引访问元素。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_78762.jpg?sign=1738828272-ePcwge7FboViCAFjE9iEP5jc2RnJYJXf-0-36fb977629537855c518ff7058bc7da0)
程序运行结果如图4-17所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38684.jpg?sign=1738828272-5nCeoEmzXaFSRMMTc3zTr57xvfv02oMu-0-ec4818d8d1e28bbf7b79830a68beb29f)
图4-17 索引提取元素运行程序
(2)切片提取元素:获取元组的切片,无须考虑超出索引范围的问题。需要注意的是,元组的切片也是一个元组。
【例4-17】切片访问元素。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_78763.jpg?sign=1738828272-EGkS6bY7gGavse7VmNt2mgdiTjmuPb4m-0-a630ea463c5493b3b77758ebfaa5053e)
程序运行结果如图4-18所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_38707.jpg?sign=1738828272-rwBwxxIbHCsxIAXYnEdbCwEwAkT7Q3uF-0-bba9885a5649749a8c242d5aa5e9eefe)
图4-18 切片提取元素运行程序
(3)元组解包:利用Python语言的灵活性,将元组中的元素赋值给多个变量。
【例4-18】元组解包。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P68_78764.jpg?sign=1738828272-clm2R0Sz2ICSQpwdJqRx1uqZ8UgqJPsb-0-06a95fba93a4c86c8a017d3815f23f6d)
程序运行结果如图4-19所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P69_38748.jpg?sign=1738828272-ycvbVOXtNPJ5RYhMtkvXZEx731YFxl9M-0-51f32e93d55ae60f0146e08a9efb2a2e)
图4-19 元组解包运行程序
4.4.4 元组常用操作方法
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P69_38893.jpg?sign=1738828272-82oPvVWmTMxuTJnb7kasy79PZzjgX8cJ-0-aaade46c3bf9a157f2a4f1253387d793)
由于元组无法修改元素,相对于列表操作的范围就比较小,常见的仍然是对元组进行元素位置查询等操作。下面列出了一些常用于操作元组的方法。
+:将两个元组合并为一个元组。
*:重复合并同一个元组为一个更长的元组。
len:获取元组长度。
sorted:创建对元素进行排序后的列表。
tuple.count:记录某个元素在元组中出现的次数。
tuple.index:获取元素在元组当中第一次出现的位置的索引。
【例4-19】元组的基本操作。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P69_78766.jpg?sign=1738828272-Xlli6mNbg7FVz9BIvw4BoS6kaXAPCQ95-0-4ee11ecfe20627201d56d1c36c3a867d)
程序运行结果如图4-20所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P69_38886.jpg?sign=1738828272-xSsUW2ae1fwYgtRxW7gY1QqPqgYZ0mKQ-0-a5cf451fd04ad530daae76186d17e50a)
图4-20 元组基本操作运行程序