在查找计算列表产品的简明方法时,我对此response感到有些困惑。这是相关代码:
reduce(lambda x,y:x*y,[3,4,5])
有人可以解释为什么会这样吗?我熟悉使用涉及一个变量的lambda
表达式(例如,当为sorting使用自定义比较函数时),但我很困惑为什么以及如何工作。
答案 0 :(得分:8)
lambda x,y: x*y
是anonymous function,等同于
def foo(x, y):
return x*y
要了解其在reduce(lambda ...)
中的用法,请考虑the docs中的示例:
reduce(lambda x,y:x + y,[1,2,3,4,5])计算 ((((1 + 2)3)4)5)。
同样,reduce(lambda x,y:x*y,[3,4,5])
计算((3*4)*5)
。