千家信息网

python元组及函数参数怎么解包

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,今天小编给大家分享一下python元组及函数参数怎么解包的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2024年11月19日python元组及函数参数怎么解包

今天小编给大家分享一下python元组及函数参数怎么解包的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

元组解包

# 创建元组的方式my_tuple = (1,2,3,4,5)# 如果元组不是空元组,它里边至少要有一个逗号my_tuple = 40,my_tuple = 10 , 20 , 30 , 40# 解包指就是将元组当中每一个元素都依次赋值给一个变量a,b,c,d = my_tuple# 交换a 和 b的值,这时我们就可以利用元组的解包,注意右边的表达式,实际上是创建了一个元组a = 100b = 300a , b = b , amy_tuple = 10 , 20 , 30 , 40# 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致# 使用*,也可以在变量前边添加一个*,这样变量将会获取元组中所有剩余的元素# 不仅是元组,还有list以及字符串等序列也可以解构a , b , *c = my_tuplea , *b , c = my_tuple*a , b , c = my_tuplea , b , *c = [1,2,3,4,5,6,7]a , b , *c = 'hello world'# 不能同时出现两个或以上的*变量 *a , *b , c = my_tuple  # SyntaxError: two starred expressions in assignment

对于函数可变参数的装包,解包

函数可变参数把所有参数封装成一个元组,而不是列表

def halo(*a):    print(a)halo(1,2,2,3,5,6,8,96,8)#可变参数不是必须写在最后,但是注意,带*的参数后的所有参数,必须以关键字参数的形式传递(通过参数名指定参数)# 第一个参数给a,剩下的位置参数给b的元组,c必须使用关键字参数 def fn2(a,*b,c):     print('a =',a)     print('b =',b)     print('c =',c)fn2(1,2,3,4,5,c=6)# 如果在形参的开头直接写一个*,则要求我们的所有的参数必须以关键字参数的形式传递def fn2(*,a,b,c):    print('a =',a)    print('b =',b)    print('c =',c)fn2(a=3,b=4,c=5)# *形参只能接收位置参数,而不能接收关键字参数, **形参可以接收其他的关键字参数,它会将这些参数统一保存到一个字典中,字典的key就是参数的名字,字典的value就是参数的值# **形参只能有一个,并且必须写在所有参数的最后def fn3(b,c,**a) :    print('a =',a,type(a))    print('b =',b)    print('c =',c)fn3(b=1,d=2,c=3,e=10,f=20)# 参数的解包(拆包)def fn4(a,b,c):    print('a =',a)    print('b =',b)    print('c =',c)# 创建一个元组t = (10,20,30)# 传递实参时,也可以在序列类型的实参数前添加星号,这样他会自动将序列中的元素依次作为参数传递# 这里要求序列中元素的个数必须和形参的个数的一致 fn4(*t)    # 创建一个字典d = {'a':100,'b':200,'c':300}# 通过 **来对一个字典进行解包操作fn4(**d)     # 相当于使用参数名指定实参   fn4(a=100,b=200,c=300)

以上就是"python元组及函数参数怎么解包"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0