Python 知识要点:lambda函数

lambda函数也叫匿名函数,函数没有具体的名称。

语法:lambda argument_list: expression

  • argument_list是参数列表,相当于函数定义中的参数列表 def(a, b=1, *args, **kwargs)
  • expression是关于参数的表达式。相当于函数中的函数体,并且表达式只能是单行的,可以为None

部分Python内置函数接收函数作为参数

filter函数。此时lambda函数用于指定过滤列表元素的条件。
print(list(filter(lambda x: x % 3 == 0, [1, 2, 3])))
指定将列表[1,2,3]中能够被3整除的元素过滤出来,
结果是[3]。
注意:在python3中,filter, map, zip等返回可迭代的对象,返回的仅仅是一个元素,并不是一个列表,所以结果前需要使用 list
 
sorted函数。此时lambda函数用于指定对列表中所有元素进行排序的准则。
print(sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x)))
将列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素与5距离从小到大进行排序,
结果是[5, 4, 6, 3, 7, 2, 8, 1, 9]。

map函数。此时lambda函数用于指定对列表中每一个元素的共同操作。
print(map(lambda x: x+1, [1, 2,3]))
将列表[1, 2, 3]中的元素分别加1,
结果是[2, 3, 4]。

reduce函数。此时lambda函数用于指定列表中两两相邻元素的结合条件。
from functools import reduce
print(reduce(lambda a, b: '{}, {}'.format(a, b), [1, 2, 3, 4, 5]))
将列表 [1, 2, 3, 4, 5]中的元素从左往右两两以逗号分隔的字符的形式依次结合起来,
结果是'1, 2, 3, 4, 5'。
注意:reduce()函数在python2是内置函数,从python3开始移到了 functools 模块。
 
https://www.jianshu.com/p/039756507e95
原文地址:https://www.cnblogs.com/dc2019/p/13512882.html