匿名函数和递归

lambda

匿名函数: 为了解决一些简单的需求而设计的一句话函数

lambda函数不需要def来声明,一句话就可以声明出一个函数

语法:

函数名 = lambda 参数: 返回值

需要注意的是:

  1. 函数的参数可以有多个,多个参数之间用逗号隔开

  2. 匿名函数不管多复杂,只能写一行,切逻辑结束后直接返回数据

  2.返回值和正常的函数一样,可以是任意数据类型

匿名函数并不是说一定没有名字,这里前面的变量就是一个函数名,说他是匿名   原因是我们通过__name__查看的时候是没有名字的,统一叫lambda,在调用的是时候没有什么特别之处, 像正常的函数调用即可.

sorted()

排序函数

语法: sorted(iterable, key = None, reverse = False)

iterable: 可迭代对象

key:排序规则(排序函数) ,在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数.根据函数运算的结果进行排序

reverse : 是否是倒叙.True:倒叙, False: 正序

 

和函数的组合使用

和lambda组合使用

filter()

筛选函数:

语法: filter(function. iterable)

  function: 用来筛选的函数, 在filter中会自动的吧iterable中的元素传递给function,然后根据function返回True或者False 来判断是否保留此项数据

  iterable: 可迭代对象

 

map()

映射函数:

语法: map(function,iterable)可以对可迭代对象中的每一个元素进行映射,分别取执行function

计算列表中每个元素的平方,返回新列表

改写成lambda

计算两个列表中相同位置的数据的和

 递归:

在函数中调用函数本身,就是递归

python机制:递归的最大深度是998

递归的应用:

我们可以使用递归来遍历各种树形结构,比我我们的文件夹系统,可以使用递归来遍历改文件夹中的所有文件

二分查找

二分查找.每次能够排除掉一半的数据,查找的效率非常高,但是局限性比较大,必须是有序序列才可可以使用二分查找

要求: 必须是有序序列

原文地址:https://www.cnblogs.com/ALADL/p/9341192.html