高阶函数和柯里化

高阶函数

一等公民

  • 函数在Python是一等公民(First-Class Object)
  • 函数也是对象,是可调用对象
  • 函数可以作为普通变量,也可以作为函数的参数 返回值
    高阶函数(High-order Function)
  • 数学概念 y = f(g(x))
  • 在数学和计算机科学中,高阶函数应当是至少满足下面一个条件的函数
       + 接受一个或多个函数作为参数
       + 输出一个函数
def add(x):
        def inner(y):
                return x+y
        return inner


内建高阶函数
排序sorted
定义sorted(iterable,*,key=None,reverse=False)->list,不再赘述

sorted(lst,key=lambda x:6-x)  #返回新列表
list.sort(key=lambda x:6-x)   #就地修改

过滤filter

  • 定义filter(function,iterable)
  • 将可迭代对象进行遍历,返回一个迭代器
  • function参数是一个参数的函数,且返回值应当是bool类型,或其返回值等效布尔值
  • function参数如果是None,可迭代对象的每一个元素自身等效布尔值
list(filter(lambda x:x%3==0,[1,3,4,7,9]))
list(filter(None,range(5)))
list(filter(None,range(-5,5)))  

映射map

  • 定义map(function,*iterables)->map object
  • 将多个可迭代对象的元素,按照指定的函数进行映射
  • 返回一个迭代器
list(map(lambda x:2*x+1,range(10)))
dict(map(lambda x:(x%5,x),range(100)))
dict(map(lambda x,y:(x,y),'abcde',range(100)))

柯里化

  • 指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程.新的函数返回一个以原有第二个参数的函数
  • z=f(x,y)转换成z=f(x)(y)的形式
def add(x,y):
        return x+y

add(4,5)

def add(x):
    def _add(y):
        return x+y
    return _add

add(4)(5)


def add(x,y):
    def _add(z):
        return x+y+z
    rturn _add

add(4,5)(6)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值