Python匿名函数
时间:2020-02-23 14:42:25 来源:igfitidea点击:
Python匿名函数
Python匿名函数是没有名称的函数。
因此,我们可以在较小范围的程序中使用Python匿名函数。
通常,我们使用def
关键字定义Python函数。
但是我们使用lambda关键字定义了匿名函数。
匿名函数的基本结构如下。
lambda arguments : expression
仔细观察,匿名函数在接受一个或者多个参数时只有一个表达式。
因此,如果我们要创建一个将计算两个数字之和的函数。
以下代码将这样做;
def sum ( a, b ): return a+b print (sum(1, 2)) print (sum(3, 5))
但是,我们可以将此函数转换为匿名函数。
代码将像这样
sum = lambda a,b: (a+b) print (sum(1,2)) print (sum(3,5))
为什么要使用Python匿名函数
似乎我们可以用常规函数代替匿名函数。
那么,为什么要使用匿名函数呢?首先,您可能需要在整个范围内重复执行一项任务。
因此,您需要一个临时功能来执行此操作。
有了这种内涵,lambda /匿名函数可以为您提供帮助。
因为,匿名函数在范围之间是有效的,而常规函数在程序中是有效的。
表达或者语句
关于实现匿名函数的主要困惑是,没有区分表达式和语句的能力。
基本上,一条语句不返回任何内容,而表达式产生至少一个值。
简单的数学表达式(例如加法,乘法,除法)是表达式,可以在lambda /匿名函数中使用。
因此,您必须添加一个表达式,以便可以通过lambda/anonymous函数返回表达式的结果。
Lambda /匿名函数的一些用法
现在,我们将看到lambda的一些常用用法。
通过使用map()和filter()函数,我们可以使用匿名函数更改列表。
例如,我们希望将列表中的所有数字增加n。
为此,代码应如下所示
#initial list l = [1,2,3,4,5,6,7,8] #print the initial list print("The initial list is: ") print(l) #choose n n = int(input('Enter the value of n: ')) #increment all the values of the list by using map with help of lambda l = list(map(lambda x: x+n , l)) #print the changed list print("The changed list is: ") print(l)
同样,如果要将两个列表的公共元素存储到新列表中,则可以使用过滤器。
要检查元素是否在List2中,我们使用了lambda函数。
示例代码如下
#initialize list1 list1 = [1,2,3,4,5,6,7,8] #print list1 print("List1:", end = ' ') print(list1) #intialize list2 for select numbers list2 = [2,3,5,9,12,14] #print list2 print("List2:", end = ' ') print(list2) ''' compare using lambda function if the value is in list2, if yes then filer the result and assign to list3 ''' list3 = list(filter(lambda x: x in list2 , list1)) #print the changed list print"List3 (List1 intersect List2 ):", end=' ') print(list3)