Idiomatic Python手记一: average in FP way

时间:2023-03-08 20:40:33

方法一:

 import operator

 def average(*args):
return reduce(operator.add, args) / len(args) if args else 0

注释:

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

方法二:

 import functools

 def average(*args):
acc = functools.partial(reduce, lambda x, y : x + y)
# acc = functools.partial(reduce, operator.add)
return acc(args) / len(args) if args else 0

注释:

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