Python基础【高阶函数】

高阶函数

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])))

输出结果:


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])))

输出结果:


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]))

输出结果:


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)) ## 取参数的相反数进行排序

输出结果:

原文地址:http://blog.51cto.com/13992211/2330203

时间: 2024-11-06 03:38:05

Python基础【高阶函数】的相关文章

python之高阶函数

在python中的高阶函数就是把一个函数作为一个行参去调用另外一个函数,如: def a (): pass return .... def b (): pass return .... a(b())

(三)3-4 Python的高阶函数和匿名函数

高阶函数:把函数当成参数传递的一种函数,例如 def add(x,y,f): return f(x) + f(y) print(add(-8,11,abs)) 运行结果: 19 注:1. 调用add函数,分别执行abs(-8)和abc(11),并分别计算他们的值2.最后做运算 map()函数 map()函数是python内置的一个高级函数,它接受一个函数f和一个list,并把list的元素以此传递给函数f,然后返回一个函数f处理完所有list元素的列表.例如 def f2(x): return

python的高阶函数

函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数. 高阶函数 定义:一个函数就可以接收另一函数作为参数,这种函数就称之为高阶函数. map/reduce Python内建了map()和reduce()函数. 1.map()函数 map()函数接受两个参数,一个是函数,一个是Iterable(可迭代对象),map将传入的函数依次作用到序列的每一个元素上,然后将结果作为新的Iterator返回. def f(x): return x*x r = map(f,[1,2

Python之高阶函数map/reduce

Python内建map()和reduce()函数 map()函数接收两个参数一个是函数一个是一个Iterable(迭代器),并把结果作为新的Iterator(生成器)返回 有一个函数f(x)=x*x作用于序列list[1,2,3,4,5,6,7,8,9] 使用python函数实现 >>> r=map(f,range(1,4)) >>> r <map object at 0x7fcec039ee80> >>> list(r) [1, 4, 9

python的高阶函数和函数即变量

1:高阶函数 #高阶函数 定义:把函数作为参数作为另一个函数的参数 def test(a,b): return a*b def test_1(f,c): return f*c print(test_1(test(1,2),5)) 运行结果: 10 2:函数即变量 def foo(): print("in the foo") bar() def bar(): print("in the bar") foo() 运行结果: in the foo in the bar d

Python 学习——高阶函数 filter 和 sorted

filter filter函数顾名思义,筛选,通过调用函数进行筛选序列中的满足函数的子项 以实例来说话: 过滤一个序列中所有的偶数,保留奇数 另如下,过滤掉一个序列中的所有空格以及空字符等信息 可以知道,filter函数传入了两个参数,第一个为函数,第二个为序列 sorted 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽

JavaScript基础——高阶函数(map and reduce)

1 //高阶函数:一个函数可以接受另一个函数作为参数,这种函数称之为高阶函数. 2 /*1*/ 3 function f(x,y,f){ 4 return f(x)+f(y); 5 } 6 var sumAbs=f(-6,4,Math.abs); 7 console.log(sumAbs);//10 8 9 10 11 //map和reduce 12 /*map*/ 13 /*2*/ 14 function pow(x){ 15 return x*x; 16 } 17 var arr=[1,2,

函数式编程基础---高阶函数和偏函数

一.高阶函数 所谓高阶函数是指可一把函数作为参数,或者是可以将函数作为返回值的函数(我们见得闭包函数就是高阶函数). function foo(x){ return function(){ return x; } } 对于程序的编写,高阶函数比普通函数要灵活的多,除了通常意义的函数调用返回外,还形成了一种后续传递风格的结果接收方式,而非单一的返回值形式,后续传递风格的程序编写将函数的业务重点从返回值转移到了回调函数中: function(x,bar){ return bar(x); } 以上的代

初识python:高阶函数

定义: 变量可以指向函数,函数的参数能接收变量,那么,一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数. 简单说就是:把函数当差参数传递的函数就是高阶函数 原则: 1.不能修改被装饰函数的源代码: 2.不能修改被装饰函数的调用方式. 实例1: # abs 内置取绝对值函数 def add(a,b,f): return f(a) + f(b) #a的绝对值+b的绝对值 print(add(1,-2,abs)) # 取3,-6的绝对值之和 返回值:3 在不修改被装饰函数源代码的情况下为其

Python sorted() 高阶函数

描述 sorted() 函数对所有可迭代的对象进行排序操作. sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作. 语法 sorted 语法: sorted(iterable[, cmp[, key[, reverse]]]) 参数说明: iterable --