大家好!我们在使用python编程的过程中,或许会发现,有一个非常低调的函数,我们使用它简短的代码就可以完成单独写一个def命名函数要实现的功能,并且我们不需要绞尽脑汁的给这个函数赋予名字哦,对的,他就是我们称为匿名函数的 Lambda函数,很多时候我们也习惯称为Lambda表达式,下面就来给大家介绍一下Lambda函数的基本用法。

首先,我们先了解下,Lambda的使用语法

lambda 参数 :表达式

参数就是调用参数时传递的形参或者函数自身接收的参数,参数可以一个或多个,多个参数使用逗号隔开,eg: lambda a,b: a+b ; 当然,参数也可以设置默认值,eg:lambda a=1,b=2: a+b ;

表达式:可以是条件表达式,也可以是其他执行表达式。需要注意的是,只能有一条表达式语句;

参数与表达式之间使用冒号(:)隔开。

下面我们来举例分别使用def,lambda两种函数来实现同一个功能,比较一下两种函数的执行结果。计算1~100000000的数家和,通过计时可以看一下函数的执行效率。

执行结果:

从以上的实例中我们可以看到,lambda的代码更加简洁,显得更加的优雅清新,并且我们从耗时上看,跟def函数执行是一样的高效,所以我们可以放心的去使用。

接下来我们再来看一下Lambda几种的常见的使用方法

第一种:就是我们上面举例的那样,赋值给一个变量后调用或者直接调用。

第二种:就是作为闭包函数内函数使用。我们知道闭包中,外函数返回的是内函数对象,Lambda函数就可以作为内函数直接返回,如下示例:

第三种:在推导式中使用,示例如下:

第四种:在排序函数sort(), sorted() 的key中使用, 示例如下:

第五种:跟高阶函数 map()、 filter()、 reduce()等结合使用,示例如下:

结语: Lambda函数为我们写简单函数提供了更为优雅清新的写法,代码可读性更好。希望今天的讲解能够对大家有所帮助,谢谢!

举报/反馈

小雨说代码

915获赞 220粉丝
程序员小哥 - IT程序技术知识分享、交流
关注
0
0
收藏
分享