用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) |
扫描二维码关注公众号,回复:
1465854 查看本文章