1. 元组简介
元组基本介绍
1.1元组表现形式tuple
例子:
my_tuple=(1,2,3,4,5,6)
print(my_tuple,type(my_tuple))
print(my_tuple[3])
结果:
(1, 2, 3, 4, 5, 6) <class ‘tuple’>
4
可以全面输出,也可以单独输出。
1.2元组是⼀个不可变序列(⼀般当我们希望数据不改变时,我们使⽤元组,其他情况下基本都⽤列表)
例子:
my_tuple=(1,2,3,4,5,6)
my_tuple[3]=8
print(my_tuple[3])
结果:
TypeError: ‘tuple’ object does not support item assignment (结果会报错)
1.3使⽤()创建元素
1.4元组不是空元组⾄少有⼀个 逗号(,) 当元组不是空元组时括号可以省略。如果元组不是空元组,那么里面至少有一个逗号(,)
例子:
my_tuple=10
print(my_tuple,type(my_tuple))
结果:
10 <class ‘int’>
如果是直接赋值,就是整数格式。
my_tuple=10,
print(my_tuple,type(my_tuple))
结果:
(10,) <class ‘tuple’>
如果是加了逗号(,),则是元组格式。
例子:
my_tuple=10,20,30,40
print(my_tuple,type(my_tuple))
结果:
(10, 20, 30, 40) <class ‘tuple’>
1.5元组解包指将元组当中的每⼀个元素都赋值给⼀个变量
例子:
my_tuple=10,20,30,40
a,b,c,d=my_tuple
print(a,b,c,d)
结果:
10 20 30 40
也就是把元组中的数值依次赋值给了abcd。
例子:假如被赋值的对象比元组多一位。
my_tuple=10,20,30,40
a,b,c,d,e=my_tuple
print(a,b,c,d)
结果:
ValueError:not enough values to unpack (expected 5, got 4) 即系统显示不够。
例子:假如被赋值的对象比元组少一位。
my_tuple=10,20,30,40
a,b,c=my_tuple
print(a,b,c,d)
结果:
ValueError: too many values to unpack (expected 3) 即系统显示元组多了。
因此,元组解包,需要元组内元素和被赋值的变量的数量一致。
当元组解包时候,被赋值数量少于元组数量时候,可以用星号*来整体赋值。即除去星号赋值的,所有值归星号值所有。
例子:
my_tuple=10,20,30,40,50,60
a,b,*c,d=my_tuple
print(‘a=’,a,‘b=’,b,‘c=’,c,‘d=’,d)
结果:
a= 10 b= 20 c= [30, 40, 50] d= 60
假如数量刚好,那么被加星号*的变量,会有一个[ ],即以列表形势返回。
例子:
my_tuple=10,20,30,40
a,b,*c,d=my_tuple
print(‘a=’,a,‘b=’,b,‘c=’,c,‘d=’,d)
结果:
a= 10 b= 20 c= [30] d= 40
字符也可以进行赋值
例子:
a,*b,c=‘hello python’
print(‘a=’,a)
print(‘b=’,b)
print(‘c=’,c)
结果:
a= h
b= [‘e’, ‘l’, ‘l’, ‘o’, ’ ', ‘p’, ‘y’, ‘t’, ‘h’, ‘o’]
c= n
例子:
a,*b,c=1,2,3,4,5,6,7 #也可以变为[1,2,3,4,5,6,7],结果是一样的。
print(‘a=’,a)
print(‘b=’,b)
print(‘c=’,c)
结果
a= 1
b= [2, 3, 4, 5, 6]
c= 7