元组:tuple
元组是一个不可变的序列,他的操作方式基本上和列表一样,所以在操作元组是,就可以把元组当成是一个不可变的列表。一般我们希望数据不变的时候,就用元组。其他情况用列表。
创建元组
# 使用()来创建元组my_tuple=() # 创建了一个空元组print(my_tuple,type(my_tuple)) my_tuple=(1,2,3,4,5) # 创建了一个5个元素的元组print(my_tuple,type(my_tuple))
得到的结论是:(1, 2, 3, 4, 5) <class 'tuple'>
my_tuple=(1,2,3,4,5) # 创建了一个5个元素的元组print(my_tuple,type(my_tuple)) my_tuple[1]=0print(my_tuple)
尝试给元组中的元素重新赋值会报错:'tuple' object does not support item assignment
my_tuple=1,2,3,4,5print(my_tuple,type(my_tuple))
当元组不是空元素的时候,括号可以省略
my_tuple=1, print(my_tuple,type(my_tuple))
如果元组不是空元素的时候,它里面至少要有一个逗号(,)。如果没有逗号,那么就不是元组了,而是int类型了。例如:
my_tuple=1print(my_tuple,type(my_tuple))
特殊用法:元组的解包(解构)
解包指就是将元组当中每一个元素都赋值给一个变量
举个例子:
my_tuple=1,2,3,4,5,6a,b,c,d,e,f=my_tupleprint('a=',a) print('b=',b) print('c=',c) print('d=',d) print('e=',e) print('f=',f)
得到的结论是:
在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致,如果不一致就会报错
例如:
my_tuple=1,2,3,4,5,6a,b,c=my_tupleprint('a=',a) print('b=',b) print('c=',c)
报错:ValueError: too many values to unpack (expected 3)
假如我们有100个变量,只需要前10个,我们可以在变量前添加一个 *,这样变量将会获取元组中所有剩余的元素。但是不能同时出现两个或以上的 * 变量
my_tuple=1,2,3,4,5,6a,b,*c=my_tupleprint('a=',a) print('b=',b) print('c=',c)
得到的结论是:
此外,不光是元组可解包,列表还有字符串都可以进行解包
my_tuple='hello'a,b,*c=my_tupleprint('a=',a) print('b=',b) print('c=',c)