一、函数的列表传参
列表举例 [“a”,”b”,”c”]
其实在使用列表传参的时候比较简单,只需要将实际的列表作为参数传入到调用的函数中的时候,在列表变量前加上一个星号*即可把某个列表拆分成多个参数传入到自定义函数中。如果调用的时候不加*那么多把列表看成一个整体传入。
举例:
list2=["a","b","c"]
def P2(*s1):
for v in s1:
print("<"+str(v)+">")
pass
P2(*list2)
列表拆解传参的注意事项
注意:如果在自定义函数的时候,定义的参数前没有加*,那么我们在调用这个函数的时候,也不能在列表参数值前加*。其实在这里,我们如果想要将列表拆解成多个参数进行传入的时候,我们必须就是要定义一个可变参数,而定义可变参数的时候,我们必须要加上一个*
本质:列表拆解传入的时候 ,自定义函数的参数个数必须要支持实际拆解传参调用函数。
二、函数的字典传参
类似于列表拆解传参,只不过在传入的参数前面加上两个*,也即使说使用双星号**
举例:
dic1={"name":"老刘","work":"程序员","微信公众号":"编程创造城市"}
def D1(**d):
print(d)
D1(**dic1)
注意:在定义函数的时候使用**进行定义的话,我们必须在调用的时候也要对传入的字典加上**
同样类似于列表的去星号方式
在定义字典作为参数的时候,如果定义的参数没有**,那么在调用这个函数的时候,也不要加上**,否则直接报错。
三、知识总结:
函数的序列传参
1.列表的拆解传参,可以使用*,也可以省略,具体要看传入的参数的数量作为本质条件。
2.掌握字典的拆解传参,使用**,具体使用方法类似于列表
本节源代码
#对比可变参数与列表传参的区别 #可变参数的情况 # def P(*s1): # for v in s1: # print("<"+str(v)+">") # pass # # list1=["a","b","c"] # # P(list1,"123","ggg") #拆解列表传参的情况 # list2=["a","b","c"] # def P2(*s1): # for v in s1: # print("<"+str(v)+">") # pass # # P2(*list2) # # #定义的时候不加星号的情况 # list3=["a","b","c"] # def P3(s1): # for v in s1: # print("【"+str(v)+"】") # # P3(list3) #定义参数数量和列表中的值的数量相同的情况 # list4=["a","b","c"] # def P4(s1,s2,s3): # print("#"+s1+"#") # print("#" + s2 + "#") # print("#" + s3 + "#") # # P4(*list4) #自定义字典的传入输出 # dic1={"name":"老刘","work":"程序员","微信公众号":"编程创造城市"} # def D1(**d): # for s1 in d.items(): # print(s1[0]+"="+s1[1]) # # D1(**dic1) dic2={"name":"老刘","work":"程序员","微信公众号":"编程创造城市"} def D2(d): for s1 in d.items(): print(s1[0]+"="+s1[1]) D2(dic2)
执行效果(注释的代码将没有显示效果):
name=老刘 work=程序员 微信公众号=编程创造城市