元组是不可变序列,其表现形式为tuple
什么时候用到元组?
一般当希望数据不变的时候用元组,其余时候用列表
创建元组
1、使用‘()’创建元组
my_tuple=(1,2,3,4)
2、使用tuple()函数创建
my_tuple=tuple(range(5))
my_tuple=10,
print(my_tuple,type(my_tuple)
#这里的my_tuple也是一个元组,通过打印结果可以看到,只要元组不是空的,里面知道有一个逗号
元组解包
解包指将元组当中每一个元素赋值给一个变量
my_tuple=(10,11,12,13)
a,c,b,d=my_tuple
print(a)
print(b)
print(c)
print(d)
注:元组解包时,变量的数量必须和元组中元素个数保持一致
my_tuple=(1,2,3,4)
a,*b=my_tuple
print(a)
print(b)
通过上面代码可以看出,当变量个数和元组中元素个数不一致时,可在变量前添加一个“*”,这样变量将会获取元组剩余的元素
获取元组中的元素
通过索引获取元组中的元素
a=(1,2,3)
print(a[1])
可变对象
每个对象当中保存了3个数据id(标识),type(类型),value(值)
a=[1,2,3,4]
print(a,id(a))
a[1]=11
print(a,id(a))
通过上面代码可以看出,通过变量修改对象里面的值时,不会改变变量指向的对象
b=[1,2,3]
print(b,id(b))
b=[4,5,6]
print(b,id(b))
通过上面代码可以看出,通过重新给变量重新赋值后,会改变变量所指向的对象
a=[1,2,3]
b=a
b[0]=10
print(a,id(a))
print(b,id(b))
通过上面代码可以看出,a,b是指向同一个对象的
==和is
==和!=是比较对象的值是否相等,
a=[1,2,3]
b=[1,2,3]
print(a==b)#结果返回一个bool值
is和is not 比较两个对象的id是否相等
a=[1,2,3]
b=[1,2,3]
print(a is b)#结果返回一个bool值