内置高阶函数

1. map()
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
注意:map()函数不改变原有的 list,而是返回一个新的 list。
例如:
def f(x):
return x*x

res = map(f,[1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list(res))

2. reduce()

reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
reduce 在python3里面修改为functools.reduce()
例如:
import functools
def f(x, y):
return x + y
res = functools.reduce(f, [1, 3, 5, 7, 9])
print(res)

计算过程---(求和 求积可以使用到)
先计算头两个元素:f(1, 3),结果为4;
再把结果和第3个元素计算:f(4, 5),结果为9;
再把结果和第4个元素计算:f(9, 7),结果为16;
再把结果和第5个元素计算:f(16, 9),结果为25;
由于没有更多的元素了,计算结束,返回结果25

3. filter()
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
例如:
def is_odd(x):
return x % 2 == 1
res = filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
print(list(res))

4. sorted()
可对list进行排序

例如:
def reversed_cmp(x, y):
if x > y:
return -1
if x < y:
return 1
return 0
res = sorted([36, 5, 12, 9, 21], reverse=False) # reverse作为标志位
print(res)

原文地址:https://www.cnblogs.com/wenshu/p/12257942.html

时间: 2024-10-13 04:39:42

内置高阶函数的相关文章

七. python进阶(内置高阶函数)

一. 内置高阶函数 高阶函数 函数接收的参是一个函数名 返回值包含函数 把函数当作一个参数传给另一个函数 def a(n): print(n) def b(name): print('my name is 哈哈哈') a(b('111111111111111111111111111111111')) # my name is 哈哈哈 # None def a(n): print(n) #<function b at 0x000002EAA7B43E18> def b(): print('my

python 中的高阶函数

函数名其实就是指向函数的变量 >>> abs(-1) 1 >>> abs <built-in function abs> >>> a=abs >>> a(-1) 1 高阶函数:能接收函数做变量的函数 >>> def abc(x,y,f): ... return f(x)+f(y) ... >>> abc(-2,3,abs) 5 python中的内置高阶函数 map()函数和reduce(

函数式编程 &amp; Python中的高阶函数map reduce filter 和sorted

1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数式编程的第一型.在面向对象编程中,我们把对象传来传去,那在函数式编程中,我们要做的是把函数传来传去,而这个,说成术语,我们把他叫做高阶函数.飞林沙 2)特点 计算视为视为函数而非指令 纯函数式编程:不需变量,无副作用,测试简单(每次的执行结果是一样的) 支持高阶函数,代码简洁 2. python支持

Python: 高阶函数与lambda表达式

缘由: python语法简单一看就会,但用在实处,想因为少于实战,总感觉有些捉襟. 翻阅跟踪youtube_dl源码,看到filter()函数用法,及其中lambda表达式,感觉好有意思,就补下课,记录所思. 1. 高阶函数 所谓高阶函数,即是能接受函数做参数的函数.函数做参,与c#委托.c++函数指针.Delphi事件有类似之处 比如: def my_func(f, *args): f(args) def my_print(s): print ', '.join(s) my_func(my_p

(三)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

高阶函数和匿名函数

1.高阶函数 把函数当成一个参数的函数 例子: abs函数作为一个参数 def add(a,b,f): return f(a) + f(b) print (add(10,-10,abs)) 结果: 20 常用内置高阶函数 1)map()函数:接收一个函数和列表,并将列表的值传给函数,最后将结果以列表形式输出 例子: def power(x): return x*x list1=[1,2,3,4,5,6,7,8,9,10] print map(power,list1) 结果: [1, 4, 9,

高阶函数、返回函数、闭包、匿名函数、装饰器、偏函数

整理多个网友知识: 一.高阶函数(函数作为变量,传给另外一个函数使用) 高阶函数例子: 备注:math模块sqrt()函数求平方根. #!/usr/bin/env python #-*- coding:utf-8 -*- import math def add(x, y, f):     return f(x) + f(y) print add(100, 16, math.sqrt) [[email protected] ~]# python test1.py  14.0 内置高阶函数: (1)

Python 高阶函数【转】

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 而函数式编程(请注意多了一个"式"字)--Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算. 我们首先要搞明白计算机(Computer)和计算(Compute)的概念. 在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条

函数-内置函数,匿名函数,嵌套函数,高阶函数,序列化

函数简单说明 # 函数即"变量" # 高阶函数 # a.把一个函数名当做实参传给另一个函数(在不修改被装饰函数的源代码的情况下,为其添加功能) # b.返回值中包含函数名(不修改函数的调用方式) ''' import time def bar(): print("in the bar!") time.sleep(2) def foo(func): start_time = time.time() func() #根据内存地址,执行代码 stop_time = tim