Idiomatic Python手记一: average in FP way

本文介绍了使用Python的两种不同方法来计算一组数值的平均值。第一种方法利用了operator模块中的add函数配合reduce方法进行求和后再除以元素数量;第二种方法则引入了functools模块,通过partial函数预先设定reduce的参数为lambda表达式实现累加,最后同样通过除以元素数量得到平均值。这两种方法均考虑到了输入为空的情况。

 方法一:

1 import operator
2 
3 def average(*args):
4     return reduce(operator.add, args) / len(args) if args else 0

注释:

  • 语句 if []: / if (): / if '' : / if {}: 对于以上空集 逻辑值为 False
  • 等同于 if len(list) == 0 : pass 等

 

 方法二:

1 import functools
2 
3 def average(*args):
4     acc = functools.partial(reduce, lambda x, y : x + y)
5     # acc = functools.partial(reduce, operator.add)
6     return acc(args) / len(args) if args else 0

注释:

  • acc 为初值为lambda 表达式的reduce偏函数

转载于:https://www.cnblogs.com/ydlme/p/4293717.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值