一、 lambda() 匿名函数

说白了,从字面理解匿名函数就是看不见的函数,那么他的看不见表现在哪里呢?

其实就是在查询的时候他们的类型都是lambda的类型所以叫匿名,只要是用匿名函数写的大家都一个名字都叫lambda

那么我们来看一看他的用法

比如一个很简单的函数计算n 的平方你会怎么写??

很多人如果没有用过匿名函数的都会这样去写




function R 函数_递归


这样写是没有问题的

但是经常写函数的你会知道一个问题那就是起函数名是一件非常痛苦的事,而且一个很简单的问题但必要写一个函数去执行的时候你还必须要按照函数的所有格式去把它写出来那么有没有一种简单而且又省事的写法呢?

匿名函数就可以帮你解决这个问题

前面的函数我们可以这样去写


function R 函数_匿名函数_02


同样是一个结果但是匿名函数只需要一行就可以解决而且调用的时候直接调用就可以用,是不是很容易

语法 : 函数名 = lambda () 参数: 返回值

注意:

  1. 函数的参数可以有多个.多个参数之间用途逗号隔开
  2. 匿名函数不管有多复杂. 只能写一行.切逻辑结束后直接返回数据
  3. 返回值和正常的函数一样,可以是任意的数据类型

二.sorted()

排序函数.

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

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

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


function R 函数_匿名函数_03


字典也是一样的 返回的是排序后的key

在函数里组合使用

假如有这么一道题,让你根据列表里的字的长短来排序


function R 函数_递归_04


当然也可以按照我们前面学习的隐藏函数来写


function R 函数_function R 函数_05


三.filter()

筛选函数

语法: filter(function. Iterable)
function:用来筛选的函数,在filter中会自动的把iterable中的元素传递给function.然后根据function返回的Ture或者False来判断你是否保留此项数据

iterable:可迭代对象


function R 函数_map根据key排序_06


四. map ()

映射函数

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

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


function R 函数_匿名函数_07


改写成lambda()


function R 函数_递归_08


输出的结果是一样的

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


function R 函数_匿名函数_09


五.递归

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


function R 函数_map根据key排序_10


在python中递归的深度最大到1000.但是一般是达不到1000是在998左右


function R 函数_map根据key排序_11


递归的应用:

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


function R 函数_function R 函数_12


二分法查找

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

要求:查找的序列必须是有序序列.


function R 函数_function R 函数_13


function R 函数_function函数的用法_14


匿名函数 sorted() filter() map() 递归函数-侵删