Python常见的拆包操作
普通拆包
s_list=["Mxx",20,"男"]
name,age,sex=s_list
列表和元组是同样的操作
但是需要注意 对字典拆包返回的是键值( k e y key key )
*和**拆包
a=[1,2,3]
print(*a)
b={'a':1,'b':2,'c':3}
print(**b)#会报错
输出
1 2 3
#报错
*是对列表和元组进行拆包
**是对字典进行拆包
需要注意的是
** b b b 会把 b b b 拆成 a = 1 , b = 2 , c = 3 a=1,b=2,c=3 a=1,b=2,c=3
而 p r i n t ( ∗ ∗ b ) print(**b) print(∗∗b) 会报错的原因是 p r i n t print print 函数没有 a , b , c a,b,c a,b,c 关键字
解决办法:手写函数
def printm(a,b,c):
print(a,b,c)
b={'a':1,'b':2,'c':3}
printm(**b)
输出
1 2 3
当然也可以在定义函数时传*参数
def printm(*a,**b):
print(a,b)
printm(1,2,3,name='mu',age=20)
输出结果
(1, 2, 3) {'name': 'mu', 'age': 20}
需要注意的是,传参传递的是关键字,所以不需要用引号囊括起来,而值是数据类型,正常操作即可。