The Reduce Function in Python
- 时间:2020-09-13 14:33:25
- 分类:网络文摘
- 阅读:146 次
In Python, the reduce() function is declared in the functools. And it has the following function signature:
1 | reduce(method, data, initial_value); |
reduce(method, data, initial_value);
The reduce() function will iterate over the data array (or list), and accumulate a value (set to initial_value first) using the given function which has the following signature:
1 2 | def reducer_method(accumulated_value, current_value): pass |
def reducer_method(accumulated_value, current_value): pass
For example, to sum up all the values from 1 to 100, you can use this:
1 2 | from functools import reduce reduce(lambda s, cur: s + cur, range(101), 0) |
from functools import reduce reduce(lambda s, cur: s + cur, range(101), 0)
As we can see, the reducer function for sum is passed as a lambda function, which is essentially the same as:
1 2 | def reducer_sum(s, cur): return s + cur |
def reducer_sum(s, cur): return s + cur
The reduce() function in Python allows you to do one-liner without need to write a loop.
How is reduce() implemented in Python?
The reduce() function is as simple as the following:
1 2 3 4 5 | def reduce(reducer, data, value): cur = value for i in data: cur = reducer(cur, i) return cur |
def reduce(reducer, data, value):
cur = value
for i in data:
cur = reducer(cur, i)
return cur–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:把含糖5%和含糖8%的两种糖水混合成含糖6%的糖水 长方形折成梯形求梯形AFDC的面积 求梯形的腰长是多少米 菜的做法一共有几种可能 箱子里有圆球和正方体各30个 有5位探险家计划横穿沙漠 田字形和十字形里分别填什么数 分数应用题求六年级有多少人 (1/6+1/7+1/8)×(1/7+1/8+1/9)-(1/6+1/7+1/8+1/9)×(1/7+1/8) 鸟有几种不同的飞法
- 评论列表
-
- 添加评论