Python reduce 函数 - Python零基础入门教程

2021年7月23日 6点热度 0条评论 来源: 猿说编程

目录

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

Python 内置函数 reduce 和 map / filter 等函数有点类似,都是通过函数对迭代器中的元素进行遍历操作,唯一区别是 reduce 函数是返回计算结果是一个值,而 map / filter 是返回一个序列或者迭代器,下面在做详细解释

一.Python reduce 函数简介

1.reduce 函数语法

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python reduce 函数.py
@Time:2021/05/18 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

from functools import reduce # 导入模块

'''
参数介绍:
    function – 有两个参数的函数, 必需参数;
    sequence – tuple ,list ,dictionary, string等可迭代物,必需参数;
    initial – 初始值, 可选参数;

返回值:返回计算结果;
'''
reduce(function, sequence[, initial])

2.reduce 函数原理

reduce 函数的工作过程是 :在迭代 sequence(tuple ,list ,dictionary, string 等可迭代物)的过程中,首先把 前两个元素传给 函数参数,函数加工后,然后把得到的结果和第三个元素作为两个参数传给函数参数, 函数加工后得到的结果又和第四个元素作为两个参数传给函数参数,依次类推。

如果传入了 initial 值, 那么首先传的就不是 sequence 的第一个和第二个元素,而是 initial 值和 第一个元素。经过这样的累计计算之后合并序列到一个单一返回值;

例如:reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) 计算的就是((((1+2)+3)+4)+5) = 15

二.Python reduce 函数使用

1.reduce 函数普通使用

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python reduce 函数.py
@Time:2021/05/18 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

from functools import reduce # 导入模块

def func1(x,y):
    # 把上一次计算的结果作为下一次的计算的输入
    print("x=%d y=%d x*y=%d"%(x,y,x*y))
    return x*y

if __name__ == "__main__":
    list1 = [1,2,3,4,5]
    value = reduce(func1,list1) #等价 1*2*3*4*5 = 120
    print(value)
    print(type(value))

'''
输出结果:

x=1 y=2 x*y=2
x=2 y=3 x*y=6
x=6 y=4 x*y=24
x=24 y=5 x*y=120
120
<class 'int'>
'''

实际上这个函数很简单:把上一次计算的结果作为下一次的计算的输入!

2.reduce 函数配合匿名函数使用

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python reduce 函数.py
@Time:2021/05/18 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

if __name__ == "__main__":
    list1 = [1,2,3,4,5]
    value = reduce(lambda x,y : x*y ,list1) #等价 1*2*3*4*5 = 120
    print(value)
    print(type(value))

'''
输出结果:

120
<class 'int'>
'''

3.reduce 函数设置可选参数 initial

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python reduce 函数.py
@Time:2021/05/18 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""


from functools import reduce # 导入模块

def func1(x,y):
    return x*y

if __name__ == "__main__":
    list1 = [1,2,3,4,5]
    value = reduce(func1,list1,50) #等价 50*1*2*3*4*5 = 6000
    print(value)
    print(type(value))


'''
输出结果:

6000
<class 'int'>
'''

三.猜你喜欢

  1. Python 条件推导式
  2. Python 列表推导式
  3. Python 字典推导式
  4. Python 不定长参数 *argc/**kargcs
  5. Python 匿名函数 lambda
  6. Python return 逻辑判断表达式
  7. Python is 和 == 区别
  8. Python 可变数据类型和不可变数据类型
  9. Python 浅拷贝和深拷贝
  10. Python 异常处理
  11. Python 线程创建和传参
  12. Python 线程互斥锁 Lock
  13. Python 线程时间 Event
  14. Python 线程条件变量 Condition
  15. Python 线程定时器 Timer
  16. Python 线程信号量 Semaphore
  17. Python 线程障碍对象 Barrier
  18. Python 线程队列 Queue – FIFO
  19. Python 线程队列 LifoQueue – LIFO
  20. Python 线程优先队列 PriorityQueue
  21. Python 线程池 ThreadPoolExecutor(一)
  22. Python 线程池 ThreadPoolExecutor(二)
  23. Python 进程 Process 模块
  24. Python 进程 Process 与线程 threading 区别
  25. Python 进程间通信 Queue / Pipe
  26. Python 进程池 multiprocessing.Pool
  27. Python GIL 锁

未经允许不得转载:猿说编程 » Python reduce 函数

本文由博客 - 猿说编程 猿说编程 发布!

    原文作者:猿说编程
    原文地址: https://www.cnblogs.com/shuopython/p/15044029.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。