Python lambda(匿名函数)|filter、map和reduce

在Python中, 匿名函数意味着函数没有名称。我们已经知道定义关键字用于定义常规功能, 拉姆达关键字用于创建匿名函数。它具有以下语法:

lambda arguments: expression

  • 此函数可以有任意数量的参数, 但只能有一个表达式, 该表达式将被求值并返回。
  • 可以在需要函数对象的任何地方免费使用lambda函数。
  • 你需要知道, lambda函数在语法上仅限于单个表达式。
  • 除了函数中的其他类型的表达式外, 它在编程的特定领域还具有多种用途。
让我们看一下这个例子, 并尝试了解普通def定义的函数和lambda函数之间的区别。这是一个返回给定值的多维数据集的程序:
# Python code to illustrate cube of a number # showing difference between def() and lambda(). def cube(y): return y * y * y; g = lambda x: x * x * x print (g( 7 ))print (cube( 5 ))

输出如下:
343 125

  • 不使用Lambda:在这里, 它们都返回给定数字的多维数据集。但是, 在使用def时, 我们需要使用名称多维数据集定义一个函数, 并且需要向其传递值。执行后, 我们还需要使用调用函数的地方返回结果返回关键词。
  • 使用Lambda:Lambda定义不包含” return” 语句, 它始终包含要返回的表达式。我们还可以将lambda定义放在需要函数的任何位置, 而不必完全将其分配给变量。这就是lambda函数的简单性。
Lambda函数可以与filter(), map()和reduce()之类的内置函数一起使用。
将lambda()与filter()结合使用
Python中的filter()函数接受一个函数和一个列表作为参数。这提供了一种精妙的方法来过滤出序列” 序列” 的所有元素, 为此函数返回True。这是一个小程序, 可从输入列表中返回奇数:
# Python code to illustrate # filter() with lambda() li = [ 5 , 7 , 22 , 97 , 54 , 62 , 77 , 23 , 73 , 61 ] final_list = list ( filter ( lambda x: (x % 2 ! = 0 ) , li)) print (final_list)

输出如下:
[5, 7, 97, 77, 23, 73, 61]

将lambda()与map()结合使用
Python中的map()函数接受一个函数和一个列表作为参数。该函数使用lambda函数调用, 并有一个列表, 并返回一个新列表, 其中包含该函数为每个项目返回的所有lambda修改后的项目。例:
# Python code to illustrate # map() with lambda() # to get double of a list. li = [ 5 , 7 , 22 , 97 , 54 , 62 , 77 , 23 , 73 , 61 ] final_list = list ( map ( lambda x: x * 2 , li)) print (final_list)

【Python lambda(匿名函数)|filter、map和reduce】输出如下:
[10, 14, 44, 194, 108, 124, 154, 46, 146, 122]

使用lambda()和reduce()
Python中的reduce()函数接受一个函数和一个列表作为参数。该函数使用lambda函数和一个列表进行调用, 并返回一个新的简化结果。这会对列表对执行重复操作。这是functools模块的一部分。例:
# Python code to illustrate # reduce() with lambda() # to get sum of a list from functools import reduce li = [ 5 , 8 , 10 , 20 , 50 , 100 ] sum = reduce (( lambda x, y: x + y), li) print ( sum )

输出如下:
193

在这里, 前两个元素的结果将添加到下一个元素, 并一直持续到列表的末尾, 例如(((((5 + 8)+10)+20)+50)+100)。
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。

    推荐阅读