今天小编给大家分享一下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 = 100 b = 300 a , b = b , a my_tuple = 10 , 20 , 30 , 40 # 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致 # 使用*,也可以在变量前边添加一个*,这样变量将会获取元组中所有剩余的元素 # 不仅是元组,还有list以及字符串等序列也可以解构 a , b , *c = my_tuple a , *b , c = my_tuple *a , b , c = my_tuple a , 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元组及函数参数怎么解包”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。