函数传参字典_Python 函数参数解包

30f5b2640b2daae459ae39c9d307a079.png
做一个简单、明亮、快乐的手艺人。

函数参数解包(Function Argument Unpacking)是在函数传参时将iterable参数对象中的元素解包出来的一种技术。

想象一个场景,当函数所有实参保存在一个 tuple 或者 list 中时,如何优雅传参?

def print_info(name, age, sex):
    print('Name = {0}; Age = {1}; Sex = {2}'.format(name, age, sex))

list_info = ['Luke', '42', 'Male']
tuple_info = ('Luke', '42', 'Male')

如果不使用函数参数解包技术,写法如下

print_info(list_info[0], list_info[1], list_info[2])
print_info(tuple_info[0], tuple_info[1], tuple_info[2])

当然任何一个有自我修养的程序员都不会对这种写法满意,幸运的是Python的设计者们已经为我们提供给了一个优雅的方案。

print_info(*list_info)
print_info(*tuple_info)

这就是函数参数解包,对iterable object 进行unpack,并将所有元素作为参数传递给被调用函数。

除了tuple、list、generators之外,实践中也常出现对dictionary的解包,字典的解包较为有趣。由于字典中元素是key/value pair,因此使用 * 或 ** 对字典进行解包得到的结果不同。

dic = {'name':'luke', 'age':'42', 'sex':'male'}
**dic ==> 'luke', '42', 'male'
 *dic ==> 'name', 'age', 'sex'

晚安。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值