元组特性
元祖是不可变序列
元组中存储的是对象的引用
如果元组的元素是不可变内容 那么这个元素是不可改变的
如果元祖的元素是可改变的 那么只能改变这个元素的数据 但是引用不能改变
t = 1,2,[1,2]# 需要加上一个逗号
t[1] = 3# 这会报错
t[2] = [1,2,3,4]#这样是可以的id(t[2])不会发生改变
t[2] = 3#这样也是会报错 不能改变引用 因为如果你改为3 id(t[2])就会发生改变
创建
t = ('sda','1122',123)
t = 'sda','1122',123
# 如果只有一个元素时
t = (1,)# 需要加上一个逗号 如果不加,那就是int类型
# 例如a = (1) b=(2) c = a+b print(c) 结果不是(1,2)而是3
t = 1,#省略括号也可以
t = tuple('sda','1122',123)
t = ()
元祖索引
t.index('sda') #获取sda的索引
运算符操作
t = (1,)
s = (2,)
z = t+s#(1,2)
a = t*3#(1,1,1) 3*t结果一样
b = t,s#((1),(2)) 嵌套元祖
解包
a = (1,2,'3')
x,y,z = a
#同样适用于其他序列
x,y,z = "abc"#x = 'a' y = 'b' z = 'c' 一定要数量一致
x,y,c = "abcde"#这样就不行
x,y,*c = "abcdex"#这样可以 x = a y = b c = ['c','d','e','x']
打包
x,y,z = 1,‘a’,3# 实际上是线将1,‘a’,3进行打包(1,‘a’,3) 再解包x,y,z = (1,‘a’,3)