能够把函数当成参数传递的参数就是高阶函数

map

 map:
功能: 拿iterable的每一个元素放入func中,
func的返回值放入迭代器内进行返回 参数: iterable, func
返回: 迭代器 # ["a","c","b"] => [97,99,98]
dictvar = {97:"a",98:"b",99:'c',100:'d',101:'e'}
def func(x):
print(1)
for k, v in dictvar.items():
if v == x:
return k
li = ["a","c","b"]
res = map(func, li)
print(list(res))

reduce

 # 需要导入
from functools import reduce
"""
功能: 第一次拿出iterable的元素, 放入func中进行计算
计算结果再和iterable的下一个元素传入func进行计算,
以此类推直到最后一个,计算的结果作为返回值返回
参数: func iterable
返回: 最后一次调用func的计算结果 """ # (1)[5,4,8,8] => 整型5488
li = [5,4,8,8]
def func(x, y):
return x*10 + y
res = reduce(func, li)
print(res)

sorted

"""
功能: 把iterable的每一个元素放入func中获取返回值,
按照返回值对原元素进行排序(不会修改原变量)
参数: iterable, reverse(False默认从小到大), key=func
返回值: 排序后的一个列表 如果func返回值一样, 就按照字面顺序不动 [-1, -11, 99, 89] 余数都是9,
排序后与原列表保持一致(无论正序倒序)
""" listvar = (3.14,56,-9,1)
res = sorted(listvar, reverse=False) # 小到大
res = sorted(listvar, reverse=True) # 大到小
print(res) # 使用abs()进行绝对值排序
listvar = [-1,99,78,-33]
res = sorted(listvar, reverse=True, key=abs)
print(res) # 按照余数排序
def func(x):
return x % 10
listvar = [-1,99,78,-33]
res = sorted(listvar, key=func)
print(res)

filter

 """
功能: 过滤,
把iterable的每一个元素依次放入func,
返回True就保留, 返回False就丢弃
参数: func, iterable
返回: 过滤后的迭代器
""" listvar = [1,2,3,4,5,6,7,8,9]
# 过滤所有的奇数 要偶数
def func(x):
if x % 2==0:
return True
return False res = filter(func, listvar)
print(list(res)) # 使用lambda简化
res = filter(lambda x : True if x%2==0 else False, listvar) print(list(res))

高阶函数map_reduce_sorted_filter的更多相关文章

  1. c#语言-高阶函数

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

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

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

  3. JavaScript高阶函数

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

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

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

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

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

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

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

  7. Python之路 day3 高阶函数

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

  8. JavaScript高阶函数 map reduce filter sort

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

  9. js高阶函数

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

随机推荐

  1. XSS/XSRF

    一.XSS 1.1 xss的含义 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为 ...

  2. coursera-斯坦福-机器学习-吴恩达-笔记week1

    1 Introduction 1.1 概念:一个程序被认为能从经验E中学习,解决任务 T,达到性能度量值P,当且仅当, 有了经验E后,经过P评判, 程序在处理 T 时的性能有所提升. 1.2 机器学习 ...

  3. 命令行听歌http://www.linuxsir.org/bbs/thread280142.html?pageon=1#1584689

    在纯字符界面下听歌 利用 play 命令可以在命令行中播放音频文件,在纯字符界面下也没问题! ----------------------------------------------------- ...

  4. iPhone手机更换自定义铃声

    ①首先将iPhone手机(iPhone5s)的数据线插入电脑USB接口中,然后打开iTunes(12.4.3.1)-->文件-->将文件添加到资料库 ②选中音乐文件-->点击编辑-- ...

  5. 201671010142 java类与对象的定义及使用

    通过这章学习,了解到面向对象程序设计.面向对象的程序设计是有对象组成的,每个对象对用户公开的特定功能部分和隐藏的实现部分.有类构造对象的过程称为创建类的实例.实现封装的关键在于绝对不能让类中的方法直接 ...

  6. 查看shell 命令 路径

    type [root@web01 ~]# type mount mount is /bin/mount which [root@web01 ~]# type ifconfig ifconfig is ...

  7. 为什么ssh 执行完命令以后 挂了, hang , stop respond

  8. Java语法基础学习DayTen(集合续)

    一.集合 1.Set:存储的元素是无序的.不可重复的 (1)无序性:无序性不等于随机性,无序指的是元素在底层存储的位置是无序的. (2)不可重复性:当向Set中添加相同的元素时,后添加的元素不能添加进 ...

  9. 简述servlet

    什么是Servlet? Servlet是一种动态的web开发技术,本质就是一个运行在服务端的Java小程序,负责处理业务逻辑,生成动态web内容. 编写一个servlet步骤: 1.编写一个类  继承 ...

  10. python基础12_匿名_内置函数

    一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, ...