Python高阶函数
一.高阶函数的定义:①.函数可以作为参数被传递②.函数可以做为返回值输出(满足二者之一皆为高阶函数)特点:函数可以作为参数传递,也可以作为返回值输出。二.高阶函数常用的五个函数:(map,reduce,filter,sorted,reversed)①.map():map函数接受两个参数,一个是函数,一个是序列。map的作用:将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。②.reduce():把一个函数作用在一个序列上。函数会对参数序列中元素进行累积。③内置函数filter():filter()也接收一个函数和一个序列;filter()函数用于过滤序列,把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素(用布尔值过滤掉不符合条件的元素)④.内置sorted():sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序,按照字符串长度排序。三.函数嵌套与nonlocal关键字:使用nonlocal关键字,将变量标记为不在本地作用域定义,而在上级的某一级局部作用域中定义,但不能是全局作用域中定义。四函数柯里化柯里化(Currying):是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。
普通函数
一:匿名函数
1.匿名函数有关键字 lambda 修饰;2.匿名函数冒号 : 之前的是函数的参数,匿名函数可以是无参匿名函数,也可以是带参匿名函数;3.匿名函数冒号 : 之后是表达式,匿名函数不需要写 return,表达式的结果就是返回值;4.假如有这样一个需求:传入一个字符串,对字符串根据空格拆分,并以字符串的形式返回拆分后的结果,示例代码如下:str1 = “laowang is sing_dog “#普通函数def get_str(str1):# 1.将字符串拆分为列表list1 = str1.split(” “)# 2.将列表转为字符串并返回字符串return “”.join(list1)# 将1/2两步合并为一步完成# return “”.join(str1.split(” “))1212print(“打印原始字符串:”,str1)print(“调用普通函数获取字符串拆分结果:”,get_str(str1))#匿名函数f0 = lambda a:””.join(a.split(" "))print(“调用匿名函数获取字符串拆分结果:”,f0(str1))二:递归函数递归的特性:1、递归函数必须有一个明确的结束条件。2、每进入更深一层的递归时,问题规模相对于上一次递归都应减少3、相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入)。4、递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
函数
最新推荐文章于 2023-07-25 10:27:51 发布