本文共 2312 字,大约阅读时间需要 7 分钟。
引言——同学们是不是经常可以在python的函数中看到输入的参数前面有一个或者两个星号(如下图:),却不是很明白他们的作用。那么今天这节课就来带领大家深入探讨一下。
def function1(param1, *param2):def function2(param1, **param2):
其实这俩的用法都是用来将任意个数的参数传入到python函数中,但是它们两个的应用场景及某些细分的作用又有所不同哦!
上代码1:
def fun1(*args): #*可以接收任意多个 print(args) #此处的args又把接收的任意多个数据放为一个整体:元组中fun1(1,2,3,4,5,6,6)# 输出为:(1, 2, 3, 4, 5, 6, 6)
上代码2:
# 单星号的使用:def fun3(world,*value): # 注意使用单星号的参数要放在其他参数之后! print(world) print(value)fun3('cool',1,2,3,4,5,6,1,7,8,98)# 输出为:cool# (1, 2, 3, 4, 5, 6, 1, 7, 8, 98)
上代码1:
#拆包def fun1(*args): #*可以接收任意多个 print(args) #此处的args又把接收的任意多个数据放为一个整体:元组中 print(*args) #此处的*又把args接收的那个元组整体拆分为一个一个的fun1(1,2,3,4,5,6,6)# 输出为:(1, 2, 3, 4, 5, 6, 6)# 1 2 3 4 5 6 6
上代码2:
def myprint(x, y): print(x) print(y)params=(1,2)myprint(*params)# 输出为:1# 2
上代码1:
def fun2(**kwargs): print(kwargs)fun2(a = 1 , b = 2) #因为上面有**,所以把参数a = 1和b = 2转换为{}的形式# 输出为:{'a': 1, 'b': 2}
上代码2:
## 双星号(**)的使用:def function(key, **kwargs): print(key) print(kwargs)function('aaa', a = 1, b = 2, c = 3)# 输出为:aaa# {'a': 1, 'b': 2, 'c': 3}
上代码1:
def myprint(x, y): print(x) print(y)params={ 'x':1,'y':2} myprint(**params) # 此句等同于: myprint(x = 1, y = 2)# 输出为:1# 2
上代码2:
def fun2(**kwargs): print(kwargs)fun2(a = 1 , b = 2) #因为上面有**,所以把a = 1和b = 2的形式转换为{}的形式fun2(**{ 'a':1, 'b': 2}) #把{}的形式拆包为 a = 1, b = 2的形式,此方法等同上一句代码,但是可以直接传字典格式数据而不用特意改变了!# 输出为:{'a': 1, 'b': 2}# {'a': 1, 'b': 2}# 小知识点:# a = 1 < ==== > {'a':1} 可以相互转换
# *和**的混合使用:def fun4(*name,**value): print(name) print(value)fun4('key', 'beautiful', a = 1, b = 2)# 输出为:('key', 'beautiful')# {'a': 1, 'b': 2}
a = [ [7, 17146.16129032258], [8, 26092.645161290322], [9, 26865.633333333335], [10, 35460.67741935484], [11, 51436.166666666664]]# *a的作用将变量a拆包为一个个的列表;print(*a)# zip()函数的作用是:将对象逐一配对,*zip()的作用就是拆包:将一一对应的5个列表数据拆分为一一对应的两个列表数据!x_unique, y_mean = [*zip(*a)]print(x_unique)print(type(x_unique))print(y_mean)print(type(y_mean))
转载地址:http://vzlzi.baihongyu.com/