Python之reduce函数使用示例

#!/usr/bin/env python
# -*- coding:utf8 -*-

‘‘‘reduce:处理一个序列,然后把序列进行合并操作‘‘‘

###在python中没有reduce函数,所以需要导入它(去掉前面的注释符即可)
#from functools import  reduce

def reduce_test(f,array,i = None):
    if i is None:
        tmp = array.pop(0)
    else:
        tmp = i
    for num in array:
        tmp = f(tmp,num)
    return tmp

num = [1,2,3,4,5]
‘‘‘将数组里的数字全部乘起来,i是对所得值乘以i‘‘‘
print(reduce_test(lambda x,y:x*y,num,10))

print()
#reduce函数
from functools import  reduce

num = [1,23,43,456,42]
‘‘‘将数组内的所有值加起来,i是对所得值加上i‘‘‘
print(reduce(lambda x,y:x+y,num,10))
print(reduce(lambda x,y:x+y,num))

==>

1200

575
565

原文地址:https://www.cnblogs.com/lzn-2018/p/10758102.html

时间: 2024-08-25 02:17:20

Python之reduce函数使用示例的相关文章

Python 之reduce()函数

reduce()函数: reduce()函数也是Python内置的一个高阶函数.reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值. 例如,编写一个f函数,接收x和y,返回x和y的和: def f(x, y): return x + y 调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算

python中reduce()函数

reduce()函数也是Python内置的一个高阶函数.reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值. 例如,编写一个f函数,接收x和y,返回x和y的和: def f(x, y): return x + y 调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算: 先计算头两个元素:f

python的reduce()函数

reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值.(也就是最后一次是返回值) #reduce()函数 from functools import reduce def f(x,y): return x+y print(reduce(f, [1, 3, 5, 7, 9])) # 先计算头两个元素:f(1, 3),结果为4: # 再把结果和第3个元素计算:f(4, 5),结果为9: # 再把结果和第4个元素计算:f(9, 7),结

python map(),reduce()函数的用法

map(function,ls): 函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 如: reduce(function,ls): 函数接收两个参数,一个是函数,一个是序列,reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3)

python进阶一(函数式编程)【2-3 python中的reduce函数】

2-3 python中的reduce函数 python中reduce()函数 reduce()函数也是Python内置的一个高阶函数.reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值. 例如,编写一个f函数,接收x和y,返回x和y的和: 1 def f(x, y): 2 return x + y 调用 reduce(f, [

python高阶函数,map,filter,reduce,ord,以及lambda表达式

为什么我突然扯出这么几个函数,是因为我今天在看流畅的python这本书的时候,里面有一部分内容看的有点懵逼. >>> symbols = '$¢£¥€¤' >>> beyond_ascii = [ord(s) for s in symbols if ord(s) > 127] >>> beyond_ascii [162, 163, 165, 8364, 164] >>> beyond_ascii = list(filter(la

018.Python迭代器以及map和reduce函数

一 迭代器 能被next进行调用,并且不断返回下一个值的对象 特征:迭代器会生成惰性序列,它通过计算把值依次的返回,一边循环一边计算而不是一次性得到所有数据 优点:需要数据的时候,一次取一个,可以大大节省内存空间.而不是一股脑的把所有数据放进内存. 可以遍历无限量的数据 next调用迭代器时,方向是单向不可逆的. 1.1 可迭代性对象 __iter__ 如果这个数据类型含有__iter__ 方法 我们就说他是可迭代对象 dir 获取当前数据内置的方法和属性. setvar = {1,2,"abc

Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例

由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二部分将第一部分的示例进行扩展,展示了如何在python中调用多线程的C模块:第三部分扩展了第二部分,增加了在C模块的线程中回调python的演示. 本文所用的环境为:64位Win7 + python 3.4 x86 + vs2010 一.windows下的C语言多线程程序 windows下多线程编程

python内置函数map/reduce/filter

python有几个内置的函数很有意 思:map/filter/reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是python列表方法的三架马车. filter() 函数:filter 函数的功能相当于过滤器.调用一个布尔函数bool_func来迭代遍历每个seq中的元素:返回一个使bool_seq返回值为true的元素的序列. >>>a=[1,2,3,4,5,6,7]>>>b=filter(lambda x: