高阶函数

高阶函数:就是把函数当成参数传递的一种函数,例如:

def add(x,y,f):

return f(x)+f(y)

print(add(-8,11,abs))

结果:

19

解释:

  1. 调用add函数,分别执行abs(-8) 和abs(11),分别计算出他们的值
  2. 最后做和运算

介绍几种常用的高阶函数

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
# @time: 2017/11/1 21:09
# Author: caicai
# @File: def1.py
from functools import reduce
###map()函数,第一个参数为自定义函数,第二个参数为可迭代对象
lt = [1,2,3,4,5] def f2(x):
return x*x
ml = map(f2,lt)
print(type(ml))
print(list(ml))
print('################reduce######################',)
###reduce()函数
#传入的函数必须接受两个参数,
#把可迭代对象的两个参数作为函数的实参,传入到f好吃中,
#把每次f运算的结果作为第一个实参,可迭代对象额下个元素作为另外一个实参,传入函数f中
#以此类推,最终得到结果,
def f(x,y):
return x + y
print(reduce(f,[1,2,3,4,5], 10 )) print('##############filter######################')
#fukter函数
#函数会每次把可迭代对象的元素传入进去,如果返回为true,则保留该元素,如果返回为false,则不保留该函数
a = [1,2,3,4,5]
def is_odd(x):
return x%2 == 1
print(list(filter(is_odd,a)))
#sorted() 排序
#对字典就行排序
#sorted()
mm = dict(a=2,c=1,b=3,d=4)
print(mm)
for i in mm:
print(i)
for j in mm.items():
print(j)
#print(mm)
test = sorted(mm.items(),key=lambda d: d[1])
# test = sorted(mm.items(),key = reverse=False)
print(test) 输出结果

############sorted###########
{'a': 2, 'c': 1, 'b': 3, 'd': 4}
a
c
b
d
('a', 2)
('c', 1)
('b', 3)
('d', 4)
[('c', 1), ('a', 2), ('b', 3), ('d', 4)]

匿名函数

匿名函数:没有名字的函数
实例
#正常函数表示
def sum(x,y):
return x+y #匿名函数表示
m = lambda x, y: x+y
print(m(4,5))

day10-高阶函数的更多相关文章

  1. 1.函数的结构,调用,传参,形参,实参,args,kwargs,名称空间,高阶函数

    1.函数的初识 初始函数 获取任意一个字符串的元素的个数 s1='dsjdkjkfefenga' count=0 for i in s1: count+=1 print(count) 获取列表的元素的 ...

  2. c#语言-高阶函数

    介绍 如果说函数是程序中的基本模块,代码段,那高阶函数就是函数的高阶(级)版本,其基本定义如下: 函数自身接受一个或多个函数作为输入. 函数自身能输出一个函数,即函数生产函数. 满足其中一个条件就可以 ...

  3. swift 的高阶函数的使用代码

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  4. JavaScript高阶函数

    所谓高阶函数(higher-order function) 就是操作函数的函数,它接收一个或多个函数作为参数,并返回一个新函数. 下面的例子接收两个函数f()和g(),并返回一个新的函数用以计算f(g ...

  5. python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

    1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  6. python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)

    1.函数 2种编程方法 关键词面向对象:华山派 --->> 类----->class面向过程:少林派 -->> 过程--->def 函数式编程:逍遥派 --> ...

  7. Scala的函数,高阶函数,隐式转换

    1.介绍 2.函数值复制给变量 3.案例 在前面的博客中,可以看到这个案例,关于函数的讲解的位置,缺省. 4.简单的匿名函数 5.将函数做为参数传递给另一个函数 6.函数作为输出值 7.类型推断 8. ...

  8. Python之路 day3 高阶函数

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa """ 变量可以指向函数,函数的参数能接收变量, 那么 ...

  9. JavaScript高阶函数 map reduce filter sort

    本文是笔者在看廖雪峰老师JavaScript教程时的个人总结 高阶函数            一个函数就接收另一个函数作为参数,这种函数就称之为高阶函数          1.高阶函数之map:   ...

  10. js高阶函数

    我是一个对js还不是很精通的选手: 关于高阶函数详细的解释 一个高阶函数需要满足的条件(任选其一即可) 1:函数可以作为参数被传递 2:函数可以作为返回值输出 吧函数作为参数传递,这代表我们可以抽离一 ...

随机推荐

  1. 【Linux】人脸识别的封装

    写了一个linux下的Face Recognition的封装,当作是练习.语言: C++的封装,结合opencv,使用方便.下载源码:https://github.com/zacario-li/Fac ...

  2. AtCoder Regular Contest 102 D - All Your Paths are Different Lengths

    D - All Your Paths are Different Lengths 思路: 二进制构造 首先找到最大的t,使得2^t <= l 然后我们就能构造一种方法使得正好存在 0 到 2^t ...

  3. Tqdm 进度条可视化模块

    2018-12-04 14:34:25 使用python Tqdm进度条库让你的python进度可视化 Tqdm在阿拉伯语表示进步,在西班牙语中表示我非常爱你.是一个快速,可扩展的Python进度条, ...

  4. 雇佣K个工人的最小费用 Minimum Cost to Hire K Workers

    2018-10-06 20:17:30 问题描述: 问题求解: 问题规模是10000,已经基本说明是O(nlogn)复杂度的算法,这个复杂度最常见的就是排序算法了,本题确实是使用排序算法来进行进行求解 ...

  5. 设计一个带有getmin功能的栈,保证时间复杂度在O(1)

    2017-06-22  20:56:10 需要得到最小值,最简单的思路就是遍历一遍求出最小值.但是这样的时间复杂度会是O(n),不满足O(1)的要求.于是想到在建立一个栈来保存最小值. 具体操作是建立 ...

  6. python中的面向对象学习以及类的继承和继承顺序

    继承 首先编写一串关于类的代码行: __author__ = "Yanfeixu" # class People: 经典类不用加(object) class People(obje ...

  7. Lab 3-1

    Analyze the malware found in the file Lab03-01.exe using basic dynamic analysis tools. Questions and ...

  8. android -------- 安装APK报错:Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE解决方法

    记录一个 DELETE_FAILED_INTERNAL_ERROR Error while Installing APK问题 之前遇到这个问题 方案1 将data/data/目录下该应用的包名的目录删 ...

  9. vue.js面试题整理

    Vue.js面试题整理 一.什么是MVVM? MVVM是Model-View-ViewModel的缩写.MVVM是一种设计思想.Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务 ...

  10. session一二事

    Session即回话,指一种持续性的.双向的连接.Session和Cookie在本质上没有什么区别,都是针对HTTP协议的局限性而提出的一种保持客户端和服务器间保持会话连接状态的机制. Session ...