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

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

成都创新互联公司主营大方网站建设的网络公司,主营网站建设方案,成都app开发,大方h5微信平台小程序开发搭建,大方网站营销推广欢迎大方等地区企业咨询

元组解包

# 创建元组的方式
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元组及函数参数怎么解包”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。


当前题目:python元组及函数参数怎么解包
URL链接:http://scyanting.com/article/ihcddp.html