文档章节

从两个例子看 Python【map、reduce、filter】内置函数的使用

cloud-coder
 cloud-coder
发布于 2014/04/25 12:07
字数 436
阅读 2020
收藏 35

一 概念介绍

        本文从求质数,求阶乘两个示例, 提示Python的内置函数【map、reduce、filter】的使用方式

        详细参见:https://docs.python.org/2/library/functions.html

    Map函数: 对iterable中的item依次执行function(item),执行结果输出为list

map(function, iterable[, iterable, ...]) -> list

    Filter函数:对iterable中的item依次执行function(item),将执行结果为True(!=0)的item组成一个List/String/Tuple(取决于iterable的类型)返回,False则退出(0),进行过滤。

filter(function or None, iterable) -> list, tuple, or string    

       Reduce函数: iterable中的item顺序迭代调用function,函数必须要有2个参数。要是有第3个参数,则表示初始值,可以继续调用初始值,返回一个值

    定义大致如下:

def reduce(function, iterable, initializer=None):
    it = iter(iterable)
    if initializer is None:
        try:
            initializer = next(it)
        except StopIteration:
            raise TypeError('reduce() of empty sequence with no initial value')
    accum_value = initializer
    for x in it:
        accum_value = function(accum_value, x)
    return accum_value

二 示例代码

#!/usr/bin/python
# encoding=utf-8
# Filename: lambda.py
# 测试程序

# 质数的定义 只有1和它本身两个因数
def isPrime(start, stop): 
    # 取出质数,x从range(start,stop+1) 取的数
    return filter(lambda x : not [x % i for i in range(2, x) if x % i == 0], range(start, stop + 1))

# 实现5!+4!+3!+2!+1!
def addFactorial(n):
    result = []  
    for i in map(lambda x:x + 1, range(n)): 
        a = reduce(lambda x, y:x * y, map(lambda x:x + 1, range(i)))  
        result.append(a)  
    return reduce(lambda x, y:x + y, result)


def main():
    # 设置默认值
    start = 2
    stop = 0
    n=1
    try :
        start = input("Enter a start Number :")
        stop = input("Enter a stop  Number :")
        n = input("Enter a Number(int) : ")
    except :
        pass
    result = isPrime(start, stop)
    print(result)
    print addFactorial(n)
    
if __name__ == '__main__':
    main()

© 著作权归作者所有

cloud-coder
粉丝 247
博文 194
码字总数 141537
作品 0
广州
架构师
私信 提问
加载中

评论(1)

颓废的幻想者
颓废的幻想者
a = reduce(lambda x, y:x * y, map(lambda x:x + 1, range(i))) reduce 说是把 迭代器的值依次执行 lamdba函数 y 从哪取值 ,我菜鸟一枚 么见过这么用lamdba 不太懂求解释
Python函数式编程中map()、reduce()和filter()函数的用法

Python中、和三个函数均是应用于序列的内置函数,分别对序列进行遍历、递归计算以及过滤操作。这三个内置函数在实际使用过程中常常和联合使用,我们首先介绍下lambda函数。1、lambda函数 la...

损失函数
2018/05/24
0
0
学习笔记(11月02日)--高阶函数

三周四次课(11月2日) 1.高阶函数 高级函数就是把函数当成参数传递的一种函数:例如: def add(x, y, f): return f(x) + f(y) print(add(-8, 11, abs)) 结果: 19 解释: 1,调用add函数,分...

wanyang_wanyang
2018/07/03
0
0
python内置函数map/reduce/filter

python有几个内置的函数很有意 思:map/filter/reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并。 是python列表方法的三架马车。 filter() 函数: f...

itfanr
2014/12/20
402
0
关乎Python lambda你也看得懂

文章首发于我的技术博客:你可以在上面看到更多的Python教程和python爬虫 通过示例介绍Python中的lambda,map,filter 函数的使用方法。 lambda lambda 操作符(或 lambda函数)通常用来创建...

呆木木人儿
03/13
13
0
Python函数式编程-高阶函数、匿名函数、装饰器、偏函数

本篇文章我们来介绍下Python函数式编程的知识。最主要的一点,Python中的函数是对象,可以复制给变量!好了,我们来介绍几个Python函数式编程中的要点,包括高阶函数、匿名函数、装饰器、偏函...

糖宝lsh
2018/10/23
25
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
今天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
今天
27
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
今天
63
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
今天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
今天
59
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部