《Python语言程序设计》 —3.2.6 拆分参数列表
3.2.6 拆分参数列表
如果一个函数所需要的参数已经存储在列表、元组或字典中,就可以直接从列表、元组或字典中拆分出函数所需要的参数,其中列表、元组拆分出来的结果作为位置参数,而字典拆分出来的结果作为关键字参数。下面先看一个不通过拆分方法传递参数的例子,参见代码清单3-7。
代码清单3-7 不通过拆分方法传递参数示例
1 def SumVal(*args): #定义函数SumVal
2 sum=0
3 for i in args:
4 sum+=i
5 print('求和结果为',sum)
6 ls=[3,5.2,7,1]
7 SumVal(ls[0],ls[1],ls[2],ls[3])
程序运行结束后,将在屏幕上输出如下结果:
求和结果为 16.2
实际上,代码清单3-7中的第7行代码可以简写为SumVal(*ls),即通过拆分方法传递参数,参见代码清单3-8。
代码清单3-8 通过拆分方法传递参数示例
1 def SumVal(*args): #定义函数SumVal
2 sum=0
3 for i in args:
4 sum+=i
5 print('求和结果为',sum)
6 ls=[3,5.2,7,1]
7 SumVal(*ls)
程序运行结束后,可得到与代码清单3-7完全相同的运行结果。
提示 代码清单3-8的第7行代码中,*ls的作用是把列表ls中的所有元素拆分出来作为SumVal的实参,即等价于SumVal(3, 5.2, 7, 1)。
下面再通过一个例子说明如何将字典的拆分结果作为函数的关键字参数,参见代码清单3-9。
代码清单3-9 字典拆分结果作为函数关键字参数示例
1 def StudentInfo(name, chineselevel, country): #定义函数StudentInfo
2 print('姓名:%s,中文水平:%s,国家:%s'%(name,chineselevel,country))
3 d={'country': '中国', 'chineselevel':'良好', 'name':'李晓明'}
4 StudentInfo(**d)
程序运行结束后,将在屏幕上输出如下结果:
姓名:李晓明,中文水平:良好,国家:中国
提示 代码清单3-9的第4行代码中,**d的作用是把字典d中的所有元素拆分出来作为StudentInfo的实参,即等价于StudentInfo(country='中国',chineselevel='良好',name='李晓明')。
- 点赞
- 收藏
- 关注作者
评论(0)