The Reduce Function in Python
- Time:2020-09-13 14:33:25
- Class:Weblog
- Read:35
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) —
Recommend:China's foreign trade expands steadily in first 11 months
30th Gingerbread Lane event held in Vancouver, Canada
China steps up support for firms seeking opportunities overseas
China, LatAm business leaders agree on deepening cooperation in
U.S. federal government sues Arizona over makeshift border wall
China launches one more space experiment satellite
China opposes politicization, instrumentalization of counterterr
China approved major projects worth 1.5 trln yuan by end-Novembe
Head coach of Qiongzhong women’s football team thanks Messi, Ini
Opening ceremony of high-level segment of second part of COP15 m
- Comment list
-
- Comment add