用1行代码求 1! + 2! + 3! + ... + 10!
求阶乘
reduce函数用来做累积累和def fact(n) reduce(lambda x, y: x * y, range(1, n + 1))精简成lambda函数
lambda n: reduce(lambda x, y: x * y, range(1, n + 1))映射列表,求1到10的阶乘,返回一个列表
map(fact, range(1, 11))把fact函数展开
map(lambda n: reduce(lambda x, y: x * y, range(1, n + 1)), range(1, 11))求和
求和自然也用reduce函数, 最终代码如下reduce(lambda x, y: x + y, map(lambda n: reduce(lambda x, y: x * y, range(1, n + 1)), range(1, 11)))如果是求1到m的阶乘之和,则是
reduce(lambda x, y: x + y, map(lambda n: reduce(lambda x, y: x * y, range(1, n + 1)), range(1, m+1))n以内的平方和求和
求和也用reduce函数, 最终代码如下
| reduce(lambda x, y: x + y, map(lambda x:x*x,range(1,n+1) |
本文介绍如何使用Python内置函数reduce和map实现一行代码求1到10的阶乘和,以及如何灵活调整代码求任意范围内的阶乘和。通过lambda表达式和高阶函数简化代码,展示了Python强大的函数式编程特性。
168

被折叠的 条评论
为什么被折叠?



