python元组以及函数参数的解包方法

本篇内容介绍了“python元组以及函数参数的解包方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

做网站、网站建设中从网站色彩、结构布局、栏目设置、关键词群组等细微处着手,突出企业的产品/服务/品牌,帮助企业锁定精准用户,提高在线咨询和转化,使成都网站营销成为有效果、有回报的无锡营销推广。创新互联建站专业成都网站建设十多年了,客户满意度97.8%,欢迎成都创新互联客户联系。

元组解包

# 创建元组的方式
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元组以及函数参数的解包方法
网站链接:http://scyanting.com/article/pcggsj.html