The Reduce Function in Python

  • 时间:2020-09-13 14:33:25
  • 分类:网络文摘
  • 阅读:139 次

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) —

推荐阅读:
全国人大常委会关于修改《中华人民共和国教育法》的决定(主席令第三十九号)  中华人民共和国国家勋章和国家荣誉称号法(主席令第三十八号)  中华人民共和国反恐怖主义法(主席令第三十六号)  地图管理条例(国务院令第664号)   中华人民共和国宪法  全国社会保障基金条例(国务院令第667号)   2016年国务院关于修改部分行政法规的决定  居住证暂行条例(国务院令第663号)   国务院关于修改《建设工程勘察设计管理条例》的决定(国务院令第662号)   国务院关于修改《中国公民往来台湾地区管理办法》的决定(国务院令第661号)  
评论列表
添加评论