一、元组中的对象不可修改
所谓元组的不可变指的是元组所指向的内存中的内容不可变。
tuple1=(12,23,34,45)
tuple1[1]=20
#错误提示
TypeError: 'tuple' object does not support item assignment
虽然元组中的内容不可以改变,但元组可以通过切片的方式进行截取来增长元组的长度。
tuple1=(1,2,3,4,5)
tuple1=tuple1[:1]+(0,)+tuple1[1:]
print(tuple1)
(1, 0, 2, 3, 4, 5) #输出
新加对象所需的逗号与括号缺一不可。
那么如果想要删除元组中的任意一个对象呢?我们也可以通过切片的方式删除元组中的对象。
tuple1=(1,2,3,4,5)
tuple1=tuple1[:1]+tuple1[2:]
print(tuple1)
(1, 3, 4, 5) #输出
二、元组的分片操作
tuple1=(12,23,34,45)
print(tuple1[:2])
(12, 23) #输出
三、元组的标志性符号
大部分人可能会想到列表的标志性符号时中括号[ ],所以元组的符号也肯定是小括号( ),但是实际上仿佛不是如此。
tuple1=(1)
print(type(tuple1))
<class 'int'> #输出
由此看来,虽然有了小括号,但是tuple1的类型依然为int型,所以小括号并不是元组的标志性符号。
tuple1=1,2,3
print(type(tuple1))
<class 'tuple'> #输出
由此可见,逗号才真正是元组的标志性符号。
我们平常可以建立一个空列表,此时我们应该如何建立一个空元组呢?
list1=[]
print(type(list1))
tuple1=()
print(type(tuple1))
<class 'list'> #输出
<class 'tuple'>
这就很怪了,既然( )并不是元组的标志性符号,那为何tuple1仍然为元组类型呢?但我们可以用这种方式建立一个空元组。那我们如何建立一个只有一个对象的元组呢?
tuple1=(1,)
print(type(tuple1))
<class 'tuple'> #输出
所以只需在对象后加上一个逗号即可。