《Python语言程序设计》 —3.2.6 拆分参数列表

举报
华章计算机 发表于 2019/11/18 20:58:01 2019/11/18
【摘要】 本节书摘来自华章计算机《Python语言程序设计》一书中第3章,第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='李晓明')。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。