首页 理论教育 元组的序列操作符、重复和连接成员、比较操作符及特性解析

元组的序列操作符、重复和连接成员、比较操作符及特性解析

时间:2023-10-27 理论教育 版权反馈
【摘要】:例如:2.序列操作符元组支持表2-2中的所有序列操作符,如1)访问元组中某个值只能通过索引访问但不能改变元组中的元素。元组重复元组连接成员操作符3.比较操作符元组也可以使用表2-6中的标准比较操作符比较大小,比较规则与内建函数cmp()类似,即:从左至右依次拿出对应的元组元素进行比较,直到比出大小为止,如果直到最后一个元素都相同,则两个元组相同。Python中将没有明确用符号界定的多个用逗号分隔的对象都当作元组来处理

元组的序列操作符、重复和连接成员、比较操作符及特性解析

元组与列表类似,也是一种容器类型,但两者有本质的区别:列表是可变的,而元组是不可变的。Python使用圆括号()作为元组的界定符,如: 

978-7-111-53989-6-Chapter02-113.jpg

1.创建元组 

只要把用逗号分隔的各数据项用圆括号()括起来就创建了一个元组,也可以用工厂函数tuple将字符串或列表转换为元组。例如: 

978-7-111-53989-6-Chapter02-114.jpg

2.序列操作符 

元组支持表2-2中的所有序列操作符,如

1)访问元组中某个值 

978-7-111-53989-6-Chapter02-115.jpg

978-7-111-53989-6-Chapter02-116.jpg

只能通过索引访问但不能改变元组中的元素。 

如果元组中的元素还是列表或元组,要访问其中的值,可以使用多维下标,类似C语言中的多维数组,如: 

978-7-111-53989-6-Chapter02-117.jpg

(2)元组切片 

通过切片操作符从元组中取出子元组,如:

978-7-111-53989-6-Chapter02-118.jpg

与字符串和列表一样,元组的切片操作也遵从正负索引规则,正索引从零开始,负索引最后一个元素为-1,如果在切片中省略起始索引或结束索引,则从元组的最开始处开始或取到元组的最末尾结束。 

(3)元组重复 

978-7-111-53989-6-Chapter02-119.jpg(www.xing528.com)

(4)元组连接

978-7-111-53989-6-Chapter02-120.jpg

978-7-111-53989-6-Chapter02-121.jpg

(5)成员操作符(in,not in)

978-7-111-53989-6-Chapter02-122.jpg

3.比较操作符 

元组也可以使用表2-6中的标准比较操作符比较大小,比较规则与内建函数cmp()类似,即:从左至右依次拿出对应的元组元素进行比较,直到比出大小为止,如果直到最后一个元素都相同,则两个元组相同。在比较过程中,如果对应元素的类型不同,则比较遵守下列规则: 

(1)若均为数字,则强制类型转换后,比较大小。 

(2)若一方为数字,则另一方大,因为不同类型元素比较中数字是最小的。 

(3)如果均不是数字,则通过类型名字的字母顺序进行比较。 

(4)如果一方尚有元素,另一方已至元组末尾,则先结束的小。 

例: 

978-7-111-53989-6-Chapter02-123.jpg

在Python 3.x中,如果比较运算符(<,< =,> =,>)的操作数的类型不同,将引发TypeError异常。例如:表达式1< '1',0>None不再有效。一个推论是除非元组(链表)的所有元素能够一一比较,否则两个元组(链表)的比较将引发TypeError异常。请注意,这并不适用于= =和!=运算符,因为不同类型的对象比较时总是不相等的。Python 3.x中也不再支持cmp()方法,可以用表达式(a>b)-(a<b)代替cmp()。 

4.元组的可变对象 

元组定义后是不可变的,但是如果元组中包含了可变对象如列表,那么改变其可变对象时,某种意义上讲也改变了元组。 

978-7-111-53989-6-Chapter02-124.jpg

Python中将没有明确用符号界定的多个用逗号分隔的对象都当作元组来处理

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈