The Reduce Function in Python

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

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 Tips for Protecting Your Freelance Business from Liabilities  5 Easy Ways On How To Build An Authority Website  How to Protect Your WordPress Site From Hackers  Top 10 Relationship Blogs With the Best Pieces of Advice in 2020  How to Construct Binary Search Tree from Preorder Traversal in P  Dynamic Programming Algorithm to Compute the Block Sum in a Matr  Smallest Multiple Algorithm using Bruteforce or GCD/LCM  How many different ways can £2 be made using any number of coins  Compute Factorial Digit Sum: Find the sum of the digits in the n  Compute the Maximum Integer Right Triangles Solutions 
评论列表
添加评论