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

简介:

一 概念介绍

        本文从求质数,求阶乘两个示例, 提示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()
目录
相关文章
|
2月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
146 67
|
2天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
15 3
|
5天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
19 2
|
1月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
50 18
|
24天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
48 8
|
1月前
|
Python
Python中的函数
Python中的函数
45 8
|
2月前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
Python 函数合集:足足 68 个内置函数,请收好(五)
内置函数就是python给你提供的, 拿来直接用的函数,比如print.,input等。截止到python版本3.6.2 python一共提供了68个内置函数。
Python 函数合集:足足 68 个内置函数,请收好(五)
|
算法 Python
Python 函数合集:足足 68 个内置函数,请收好(四)
内置函数就是python给你提供的, 拿来直接用的函数,比如print.,input等。截止到python版本3.6.2 python一共提供了68个内置函数。
Python 函数合集:足足 68 个内置函数,请收好(四)
Python 函数合集:足足 68 个内置函数,请收好(三)
内置函数就是python给你提供的, 拿来直接用的函数,比如print.,input等。截止到python版本3.6.2 python一共提供了68个内置函数。
Python 函数合集:足足 68 个内置函数,请收好(三)