Python-高阶函数及匿名函数
2017-11-03 03:41
316 查看
1.高阶函数
就是把函数当成参数传递的一种函数。
例如:
结果:
下面介绍几个高阶函数
map() 函数
map()是内置的高阶函数,它接受一个函数f 和一个list,并把List 的元素以此传递给函数f,然后返回一个函数f 处理完所有list元素的列表。
用法:
map(第一个参数为自定义函数,第二个参数为一个可迭代对象)
返回值:是列表
map() 把列表中的每个元素当成一个值传入函数,最终返回的还是一个可迭代对象(列表)
结果:
其中:l 是一个list,把此list 的元素传入函数f2,求每个元素的平方,最终把所有的计算结果合并成一个新的list。
reduce()函数
也是内置的高阶函数,reduce()函数接受的参数和map()类似,一个函数f,一个list .但行为和map()不同。
reduce()传入的函数f 必须接收两个参数,第一次调用是把list的前两个元素传递给f,第二次调用时,就是把前两个list 元素的计算结果当成第一个参数,list的第三个元素当成第二个参数,传入f进行操作,以此类推,并返回最终结果的值
举例:
结果:
filter() 函数
其意思是过滤。filter函数接收一个函数f 和一个list ,这个函数f 的作用是对每个元素进行判断,返回True 或False。
filter()根据判断结果自动过滤掉不符合条件的元素,返回符合条件元素组成的新list
filter() 每次把可迭代对象的元素传入进去,若返回为True,则保留该元素,若返回为False,则不保留该元素。
举例:
其结果:
sorted()函数
sorted(iterable,cmp=None,key=None,reverse=False)-->new sorted list
对字典进行排序:
按照value 排序
结果:
作用:
返回一个经过排序的列表
第一个参数是一个literable,返回值是一个对literable 中元素进行排序后的列表(list)
可选参数:cmp/key/reverse
cmp: 指定一个定制的比较函数
key:指定一个接收一个参数的函数,key参数的值应该是一个函数,这个函数接收一个参数并返回一个用于比较的关键字。
reverse: 布尔值,True,列表元素被倒叙排列
匿名函数
没有名字的函数。
lambda是一种快速定义单行的最小函数,可以用在任何需要函数的地方
结果:
就是把函数当成参数传递的一种函数。
例如:
def add(x,y,f): return f(x)+f(y) print(add(-8,11,abs))
结果:
19//调用add函数,分别执行abs(-8)和abs(11),分别计算出他们的值,最后求和
下面介绍几个高阶函数
map() 函数
map()是内置的高阶函数,它接受一个函数f 和一个list,并把List 的元素以此传递给函数f,然后返回一个函数f 处理完所有list元素的列表。
用法:
map(第一个参数为自定义函数,第二个参数为一个可迭代对象)
返回值:是列表
map() 把列表中的每个元素当成一个值传入函数,最终返回的还是一个可迭代对象(列表)
def f2(x): return x*x l=[1,2,3,4,5,6] print(map(f2,l))
结果:
[1, 4, 9, 16, 25, 36]
其中:l 是一个list,把此list 的元素传入函数f2,求每个元素的平方,最终把所有的计算结果合并成一个新的list。
reduce()函数
也是内置的高阶函数,reduce()函数接受的参数和map()类似,一个函数f,一个list .但行为和map()不同。
reduce()传入的函数f 必须接收两个参数,第一次调用是把list的前两个元素传递给f,第二次调用时,就是把前两个list 元素的计算结果当成第一个参数,list的第三个元素当成第二个参数,传入f进行操作,以此类推,并返回最终结果的值
举例:
def f(x,y): return x+y print (reduce(f,[1,2,3,4,5],10))
结果:
25 //1+2=3 3+3=6 6+4=10 10+5=15 15+10=25
filter() 函数
其意思是过滤。filter函数接收一个函数f 和一个list ,这个函数f 的作用是对每个元素进行判断,返回True 或False。
filter()根据判断结果自动过滤掉不符合条件的元素,返回符合条件元素组成的新list
filter() 每次把可迭代对象的元素传入进去,若返回为True,则保留该元素,若返回为False,则不保留该元素。
举例:
a = [1,2,3,4,5,6,7] def dodd(x): return x %2 == 1 print(filter(dodd, a))
其结果:
[1,3,5,7]
sorted()函数
sorted(iterable,cmp=None,key=None,reverse=False)-->new sorted list
对字典进行排序:
按照value 排序
mm=dict(a=1,b=10,c=3,d=9) print(sorted(mm.iteritems(),key=lambda d:d[1],reverse=True))
结果:
[('b', 10), ('d', 9), ('c', 3), ('a', 1)]
作用:
返回一个经过排序的列表
第一个参数是一个literable,返回值是一个对literable 中元素进行排序后的列表(list)
可选参数:cmp/key/reverse
cmp: 指定一个定制的比较函数
key:指定一个接收一个参数的函数,key参数的值应该是一个函数,这个函数接收一个参数并返回一个用于比较的关键字。
reverse: 布尔值,True,列表元素被倒叙排列
匿名函数
没有名字的函数。
lambda是一种快速定义单行的最小函数,可以用在任何需要函数的地方
def fun(x,y): return x*y f=lambda x,y:x*y print(f(2,3)) print(type(f))
结果:
6 <type 'function'>
相关文章推荐
- Python(十) 函数式编程: 匿名函数、高阶函数、装饰器
- Python 函数式编程(高阶函数、把函数作为参数、map()函数、reduce()函数、filter()函数、自定义排序函数、函数返回函数、闭包、匿名函数、装饰器decorator)
- python高阶函数和匿名函数
- Python中的高阶函数与匿名函数
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
- Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数
- python高阶函数和匿名函数
- python高阶函数和匿名函数
- python函数-高阶函数和匿名函数
- 16. Python 高阶函数、匿名函数
- Python小白学习之路(十四)—【作用域】【匿名函数】【编程方法论】【高阶函数】
- python的嵌套函数,递归,匿名函数,函数式编程,高阶函数,内置函数
- 匿名函数python内置高阶函数以及递归
- python 函数进阶:参数传递,高阶函数,lambda 匿名函数,global 变量,递归
- Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊
- python的高阶函数与匿名函数
- python函数基础:嵌套函数、作用域、匿名函数、高阶函数、递归函数
- Python 高阶函数:匿名函数
- python(七)高阶函数,匿名函数
- python(七)高阶函数,匿名函数