码迷,mamicode.com
首页 > 其他好文 > 详细

7.3 高阶函数

时间:2017-11-10 12:52:30      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:高阶函数

高阶函数是把函数当成参数传递的一种函数。

1、map()函数,第一个参数为自定义函数,第二个参数为一个可迭代对象

lt=(1,2,3,4,5)
def f2(x):
    return x*x
ml=map(f2,lt)
print(type(ml))
print(list(ml))    # map 函数要想得到列表 得用 list() 转换 否则得到的是 map 对象


2、reduce 函数

传入的函数必须接受两个参数:

把可迭代对象的前两个参数作为参数的实参,传入到 f 函数中

把每次 f 运算的结果作为第一个实参,可迭代对象的下一个元素作为另一个实参,传入函数 f 中,

以此类推,最终得到结果

from functools import reduce
def f(x,y):
    return x+y
print(reduce(f,[1,2,3,4,5,],10))   # reduce 函数需引入包
# from functools import reduce


3、filter 函数

每次把可迭代对象的元素传入进去,如果返回为 True ,则保留该元素,如果返回False,则不保留

a=[1,2,3,4,5,6]
def is_odd(x):
    return x%2==1
b=list(filter(is_odd,a))    # 此处应该将 filter 函数转换成 list,否则得到的是 filter 对象
print(b)


7.3 高阶函数

标签:高阶函数

原文地址:http://shaoniana.blog.51cto.com/11471609/1980553

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!