python中的lambda表达式使用-一种无名的牛逼函数

一、lambda表达式

1、python中的lambda表达式是一种匿名函数,lambda的表达式的函数体只有一条语句。语法如下:
返回函数名 = lambda 参数列表 : 函数返回值表达式语句

2、小栗子

sum = lambda x,y : x+y

二、lambda表达式实现跳转表功能

1、把lambda表达式作为列表、元组或者字典元素,可以实现跳转表功能。

lambda表达式列表的定义语法:
列表名 = [(lambda表达式1),(lambda表达式2), …]

调用列表中的lambda表达式的语法:
列表名[索引](lambda表达式的参数列表)

2、小栗子

array = [(lambda x: x**2),(lambda x:x**3 ),(lambda x: x**4)]
print(array[0](2),array[1](2),array[2](2)) #注意后面传参数的方法是:[索引号](参数)
该示例的结果是:(4,8,16)

3、元组和字典的语法类似,小栗子如下:
1》元组:

list1 = ((lambda x: x**2),(lambda x: x**3),(lambda x: x**4))
print(list1[0](3),list1[1](3),list1[2](3))

2》字典:

dict1 = {'index1':(lambda x:x**2),'index2': (lambda x: x**3),'index3':(lambda x: x**4)}
print(dict1['index1'](4),dict1['index2'](4),dict1['index3'](4))

三、lambda表达式作为普通函数返回值

def calculator(type):
    if (type == 1):
        return lambda x, y: x + y
    if (type == 2):
        return lambda x, y: x - y
    if (type == 3):
        return lambda x, y: x * y
    if (type == 4):
        return lambda x, y: x / y


cal = calculator(1)
print("9+3=%d"% cal(9, 3))
cal = calculator(2)
print("9-3=%d"% cal(9, 3))
cal = calculator(3)
print("9*3=%d"% cal(9, 3))
cal = calculator(4)
print("9/3=%d"% cal(9, 3))

运行结果:
在这里插入图片描述

四、lambda表达式的优缺点

1、语法简单,仅仅是一个表达式,省去了定义和命名的烦恼
2、只适合封装逻辑简单的实现,太复杂操作不合适

说明:如有错误,欢迎指正。。。

posted @ 2019-04-18 23:01  ISmileLi  阅读(38)  评论(0编辑  收藏  举报