python中的拆包和装包

我们以元组为例,看一下python中的拆包和装包,先上代码:

#拆包
t1 = (4,7,3)


#a,b =t1  #ValueError: too many values to unpack (expected 2)
#X,Y,Z = (6,)   #ValueError: not enough values to unpack(expected 3,got 1)

a,b,c = t1

print(a,b,c)

a = t1

print(a)

#变量个数与元组个数不一致(元组元素多,赋值需要的少)
t1 =(2,5,8,9,7)
a,*_,c = t1
print(a,c,_)
a,c,*_ = t1
print(a,c,_)
a,b,*c = t1
print(a,b,c)

t1 = (9,568,3)

a,*b=t1
print(a,b)   # *b 表示未知个数0-n,0--->[]   多个元素的话--->[1,2,3,4,5,6,..]

print(*b)   #
'''
字符串  是否也可以使用*来拆包
列表   是否也可以使用*来拆包

x,y,*z='hello'
print(x,y,z)
x,*y = 'h'
print(x,y)
list1=[2,1,3,6,9,8]
list2=[2]
a,b,*_ = list1
a,*b = list2
print(a,b)
'''
list1=[1,2,3,6,9]
print(*list1)

t3 = (9,)
x,*y = t3
print(x,y)
#添加元素
y.append('a')
y.append('b')
print(y)   #['a','b']

print(*y) 

以元组为例,拆包就是把元组中的元素分别赋值给变量,值得注意的是,元素的个数需要和变量的个数相对应,当然,在实际的应用中,有时我们需要的变量没有那么多,或者变量的个数比元素的个数多,这就需要我们用一个符号:* 来解决问题,正如上面的代码,当变量的个数多的时候,用一个 星号可以将多的变量赋值成一个空的列表;当元素个数多的时候,用一个星号就可以把多出来的元素组成一个列表赋值给最后一个元素。
在赋值的时候,星号代表的是装包,在打印的时候,星号代表的是拆包。
在这里插入图片描述
当然字符串和列表也可以有类似的操作,上面的代码中注释了字符串和列表的拆装包。
欢迎大家相互沟通交流学习!!!

猜你喜欢

转载自blog.csdn.net/qq_45381011/article/details/107771444