***高阶函数

知识的1、函数本身可以赋值给变量,即:变量可以指向函数

知识点2、函数名也是变量

知识点3、函数的参数能够接受别的函数,这种函数为高阶函数

如:

def add(x,y,f):

return f(x) + f(y)

Python内建了map()和reduce()

***高阶函数map()

map()函数接受两个参数,1个是函数,一个是序列,把序列的每一个元素按函数的方式进行计算,计算的返回值即是map()函数的返回值(一个序列)

map()把运算规则抽象了,除了计算简单的f(x)=x*x,而且还可以计算复杂的函数,比如map(str,[1,2,3,4,5,6,7,8,9])

***高阶函数reduce()

reduce()函数也接受两个参数(1个是函数,一个是序列),也是把函数作用在序列上(如[x1,x2,x3,x4,x5]),但是该参数函数必须接受2个参数,reduce继续把结果和下一个序列元素做累积计算,

其效果即是reduce(f,[x1,x2,x3,x4,x5]) = f(f(f(f(x1,x2),x3),x4),x5)

>>> def fn(x,y):

return x*10 + y

>>> reduce(fn,[1,2,3,4,5])

12345

***高阶函数filter()

Python内建的filter()函数用于过滤序列

和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

在一个list中,删掉偶数,只保留奇数,可以这么写

def is_odd(n):

return n % 2 == 1

filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])

# 结果: [1, 5, 9, 15]

用filter()这个高阶函数,关键在于正确实现一个“筛选”函数

***高阶函数sorted()和排序算法

Python内建的sorted()函数可以对list进行排序

通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。

另外,sorted()也是一个高阶函数,可以接收一个自定义的比较函数实现自定义的排序

如sorted([36, 5, 12, 9, 21], lambda x, y: y - x) 和sorted([36, 5, 12, 9, 21][::-1]

高阶函数总结:

1、map\reduce\filter\sorted函数都可以接收一个函数f和一个序列L,区别是:

map函数把序列中的各个元素都按f进行执行,返回一个序列

reduce函数把序列计算前2个的结果,然后用结果继续后后面的元素组成函数参数进行计算,一直累积计算,直到返回结果,返回值是一个结果值

filter函数用于过滤序列,自定义过滤规则。返回一个序列

sorted用于排序序列,可以自定义排序规则。返回一个序列

python高阶函数心得体会_Python高阶函数总结相关推荐

  1. python高阶函数心得体会_Python高阶函数使用总结

    Datawhale干货   作者:皮钱超,厦门大学,Datawhale原创作者 本文约2000字,建议阅读6分钟 审稿人:耿远昊,Datawhale成员,华东师范大学,开源教程<Joyful-P ...

  2. python搭建环境的心得体会_python学习第一天_环境的搭建

    Python linux环境的安装: ,这里我下载的2.6.6版本: 2.在Centos系统中安装python之前,希望大家检查当前系统是否已经安装了python以及版本信息(最好先卸载,再安装): ...

  3. 用python设计数独的心得体会_python实现数独算法实例

    本文实例讲述了python实现数独算法的方法.分享给大家供大家参考.具体如下: # -*- coding: utf-8 -*- ''' Created on 2012-10-5 @author: Ad ...

  4. python上机实验报告心得体会_Python开发实习心得~

    不知不觉实习了半个月了,记录一下半个月的都具体干了些什么..这是一个超链接-Git为分布式版本控制系统,Git只有在pull,push时需要联网,而commit并不需要联网.一个class继承了uni ...

  5. python读书心得体会_Python学习心得体会

    首先最开始,我们要明确一点,学习编程不是一日之功,需要每天投入时间学习,也不可纸上谈兵,需要自己亲自操作,不动手就不会发现问题,动了手印象才会深刻,记得更靠. 接下来我就稍微总结一下,我在学习中遇到的 ...

  6. python定义函数的命令_Python入门 | 定义函数

    自用复习备忘总结. 一些定义函数:一段用来封装任务的代码 封装:用一个简单的命令执行一系列步骤的方式 3. 对象python使用对象来存储数据. 构造任何类型的值都是一个对象. 所有对象都具有三个特性 ...

  7. 在python中用递归的方法编程_python基础之函数,递归,内置函数

    阅读目录 一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量, ...

  8. python函数的特性_Python学习(007)-函数的特性

    一..函数是什么 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 1.代码重用 2.保持一致性 3.可扩展性 二.创建 2.1格式 1 ...

  9. python提供的内置函数有哪些_python内置函数介绍

    内置函数,一般都是因为使用频率比较频繁,所以通过内置函数的形式提供出来.对内置函数通过分类分析,基本的数据操作有数学运算.逻辑操作.集合操作.字符串操作等. 说起我正式了解内置函数之前,接触到的是la ...

  10. python中reduce函数的运用_python 中 reduce 函数的使用

    reduce()函数也是Python内置的一个高阶函数. reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接 ...

最新文章

  1. 2022-2028年中国共享住宿行业深度调研及投资前景预测报告
  2. Spring Boot与ActiveMQ的集成
  3. python bytes' is not JSON serializable
  4. mybatis学习(十一)——springmvc++spring+mybatis整合
  5. AtCoder AGC030E Less Than 3
  6. Enhanced LSTM for Natural Language Inference-学习笔记
  7. 请大家说一说:有没有必要针对VSS备份过程,做成一个开源小工具?
  8. PYthon常用模块 logging 日志
  9. 2017.10.31笔记
  10. 本地微信公众号授权登录获取code步骤
  11. 从小米智能家居入手,揭秘物联网关键技术​
  12. 云享·人物丨造梦、探梦、筑梦,三位开发者在华为云上的寻梦之旅
  13. 微信公众号运营,如何有效的推广
  14. General Algorithm
  15. C/C++编程刷题分享—常见的经典面试题一
  16. 带中文字库的12864驱动笔记
  17. oracle创建表空间工具,使用sqlplus命令行工具为oracle创建用户和表空间
  18. c语言define作用范围,#define的作用(C语言)
  19. 【C】echo命令的实现
  20. 寒假集训1字符串专题

热门文章

  1. Panoptic FPN-Panoptic Feature Pyramid Networks用于全景分割的特征金字塔网络
  2. python训练mask rcnn模型C++调用训练好的模型--基于opencv4.0(干货满满)
  3. 07_封装丶静态和工具类
  4. 【bzoj2434】[Noi2011]阿狸的打字机【AC自动机】
  5. Android学习笔记(17):文本框TextView类
  6. hdu1428漫步校园( 最短路+BFS(优先队列)+记忆化搜索(DFS))
  7. Android 对应的xml配置值,颜色表
  8. 关于 Profile
  9. OpenCV能调用的摄像头类型
  10. 【OpenCV学习笔记】【编程实例】六 (霍夫圆检测续)