热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python进阶:深入理解高阶函数的应用与实践

本文深入探讨了Python中高阶函数的应用与实践,重点分析了`map`函数的使用方法及其在不同版本Python中的差异。`map`函数能够将序列中的每个元素传递给指定的函数,并返回一个新的可迭代对象(在Python3中为`map`对象,在Python2中为列表)。通过具体示例,详细讲解了如何利用`map`函数进行高效的函数式编程,以及如何在实际开发中优化代码结构和性能。

高阶函数

map(fun,seq)

将seq中的元素依次作为参数传入fun,返回由函数返回值组成的新的列表。
python3:返回一个map对象
python2:返回列表
可以用list将对象转换为列表进行调用

代码:

        def fun(a):
            return a+1
        print(map(fun,[1,2,3,4,5]))
        print(list(map(fun,[1,2,3,4,5])))

输出结果:

Python基础【高阶函数】


filter(fun,seq)

函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
python3:返回一个filter对象
python2:返回列表

代码:

        def fun(a):
                return True if a%2==1 else False
        print(filter(fun,[1,2,3,4,5]))
        print(list(filter(fun,[1,2,3,4,5])))

输出结果:

Python基础【高阶函数】


reduce(fun,seq)

reduce传入一个函数一个序列
fun的参数必须是2个
首次将seq中前两个元素传入fun中,随后每次将返回值和下一个元素作为新的参数传入函数,直到传入序列中最后一个元素为止,返回一个最后的返回值。
reduce()是python2中的内置函数
python3中需要导入funtools包。
from funtools import reduce

代码:

        import functools
        from functools import reduce
        def fun(a,b):
                return a+b
        print(reduce(fun,[1,2,3,4,5]))

输出结果:

Python基础【高阶函数】


sorted(seq,key=...,reverse=...)

函数对所有可迭代的对象进行排序操作。
返回一个由seq序列组成的新的序列
利用key可对需要排序的元素进行筛选

代码:

        print(sorted([3,1,2,5,4],reverse=True)) ## 逆序
        print(sorted([3,1,2,5,4],key=lambda x:x*-1)) ## 取参数的相反数进行排序

输出结果:

Python基础【高阶函数】


推荐阅读
author-avatar
手机用户2502873691
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有