lambda()函数
lambda函数又称匿名函数。当使用的函数只是临时一用,而且自身内部实现也很简单时,就可以使用lambda函数。
下面是一个简单的lambda函数例子:
上面的代码中,x与y是函数的两个参数,冒号后面的表达式x+y是函数的计算逻辑,显然这个函数是在求两个数的和。下面的代码会给上面的lambda函数绑定一个名字,这样使得调用匿名函数更方便:
下面是未使用lambda函数的常规函数:
lambda函数使用场景
函数式编程
如,要求将一个整数列表按表内元素的绝对值,从小到大升序排列,代码如下:
sorted()函数支持接收一个函数作为参数,该参数作为sorted()的排序依据,上述代码中是按照列表元素的绝对值进行排序。
map()函数
语法:map(function, iterable, …)
参数:function是指定的函数,iterable是一个序列。
描述:map()会根据提供的函数function来对指定序列iterable做映射。具体是:function以序列iterable中的每一个元素作为参数,将得到的所有返回值以一个列表形式返回。
示例代码如下:
filter()函数
语法:filter(function, iterable)
参数:function是判断函数,iterable是一个序列。
描述:filter()函数用于过滤掉序列中不符合条件的元素,然后返回一个迭代器对象(若想以列表形式输出这个迭代器,使用list()即可)。在使用filter()函数时,iterable序列中的每个元素作为参数传递给function判断函数进行判断,然后返回True或False,最后将返回True的元素作为输出结果。(返回值是一个迭代器对象)
示例代码如下:
reduce()函数
语法:reduce(function, iterable)
参数:function是指定的函数(参数有两个),iterable是一个序列。
描述:reduce()将对参数序列中元素进行累积:先使用function(参数有两个)对iterable序列中的第1、2个元素进行操作,然后将得到的结果再与第3个进行操作,然后再将得到的结果与第4个进行操作…直到与最后一个元素进行操作,最终得到一个结果。
示例代码如下: