python中的Lambda表达式/函数

说明:

python中,有一个名为Lambda的函数。Lambda函数是一个匿名函数-表示该函数没有任何名称。

当我们声明一个函数时,我们使用“ def”关键字来定义一个具有合适函数名的函数。但是lambda函数不需要。

声明lambda表达式/函数的语法:

    lambda parameterlist : expression

哪里,

  • lambda是定义lambda表达式的保留字。

  • parameterlist是一个逗号分隔的参数列表,您可以在函数定义中找到(但请注意缺少括号)。

  • expression是单个Python表达式。该表达式不能是完整的语句。

注意:

  • 此函数可以根据需要使用任意数量的参数,但表达式必须为单个。

  • 您可以随时随地使用lambda函数。

示例1:详细说明简单函数和Lambda函数之间的区别。

# 我们用来定义矩形区域的简单方法:

# 演示矩形的Python代码   

# 显示def()和lambda()之间的差异。 

def area(l,b): 

    return l*b; 

  

g = lambda l,b: l*b 

print('lambda function:',g(7,4)) 

  

#调用函数

print('Via Simple function:',area(7,4))

输出结果

lambda function: 28

Via Simple function: 28

代码说明:

在这里,两个函数都返回矩形的相同区域,但是在使用def关键字时,我们需要完成函数的所有功能并返回它。但是,与lambda相同,我们只需要提供参数和相应的表达式即可返回答案。由于它不包含任何return语句。我们还可以将lambda定义放在需要函数的任何地方,而我们根本不必将其分配给变量。这就是lambda函数的简单性。

例2:如何使用lambda函数使用不同的形式?

print('Ways to use and declare lambda functions:')

# 简单地定义lambda函数 

#示例-1

g=lambda x, y: 3*x + y

print('Ex-1:',g(10,2))

#示例-2

f=lambda x, y: print('Ex-2:',x, y)

f(10,2)

#示例-3

h=lambda x, y: 10 if x == y else 2

print('Ex-3:',h(5,5))

#示例-4

i=lambda x, y: 10 if x == y else 2

print('Ex-4:',i(5,3))

输出结果

Ways to use and declare lambda functions:

Ex-1: 32

Ex-2: 10 2

Ex-3: 10

Ex-4: 2

lambda函数有filter(),map(),reduce()

lambda()功能可以用类似于其它功能一起使用filter(),map()等等

filter():需要参数列表。该函数过滤掉给定列表中所有返回该函数True的元素。

map(): map() python中的函数,用于通过函数或lambda函数映射列表的所有元素及其条件。

语法:

    map(function_object, iterable1, iterable2,...)

实施例3:使用lambda函数的filter(),map(),reduce()

#使用filter(),带有lambda()函数的map()。

# Python代码说明 

# filter()与lambda() 

li = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61] 

li = list(filter(lambda x: (x%2 == 0) , li)) 

print('By using filter :',li)

# Python代码说明  

# 带lambda()的map()  

# 获得清单的两倍。

l=[{'name':'nhooo', 'star':10},{'name':'yash', 'star':8},{'name':'sanjeev', 'star':8}]

for output1  in (map(lambda x : x['name'],l)):

    print('maping name:',output1)

for output2 in (map(lambda x : x['star']*10,l)):

    print('maping star:',output2)

输出结果

By using filter : [22, 54, 62]

maping name: nhooo

maping name: yash

maping name: sanjeev

maping star: 100

maping star: 80

maping star: 80

以上是 python中的Lambda表达式/函数 的全部内容, 来源链接: utcz.com/z/334556.html

回到顶部