鱼C论坛

 找回密码
 立即注册
查看: 3609|回复: 1

[学习笔记] python lamdda 表达式

[复制链接]
发表于 2018-3-26 10:31:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python允许使用lamdda表达式创建匿名函数

1、什么是匿名函数:

2、匿名函数和普通函数在使用上面又有什么不同呢?

3、使用匿名函数的优势

python 写一些执行代码时,使用lambda就可以省下定义函数过程,比如我们只是要写个简单的代码来管理服务器时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使代码更加精简

对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,有时候给函数起名字也是比较头疼的问题,使用lambda就不需要考虑命名的问题了

简化代码的可读性,由于普通函数阅读时经常要跳到开发def定义部分,使用lambda函数可以省去这样的步骤

def ds(x):
    return 2*x+1

print(ds(5))

print(lambda x :2*x+1)
#在冒号的前面是传入的参数,在冒号的后边是返回值
g = lambda x :2*x+1
print(g(5))

def add(x,y):
    return x+y

f = lambda x,y:x+y
print(f(3,4))
两个比较厉害的BIF:

filter()过滤器:通过他可以保留关注的信息,不关注的信息则不用处理

两种用法:

filter(None,[1,0,False,True])

第一种:function is None

print(list(filter(None,[1,0,False,True])))
[1, True]

第二种:function is not None

def odd(x):
    return x%2

temp = range(10)
print(list(filter(odd,temp)))
[1, 3, 5, 7, 9]
使用lambda:

print(list(filter(lambda x:x%2,range(10))))
[1, 3, 5, 7, 9]


map()映射:两个参数一个函数和一个可迭代的序列

将序列的每一个元素作为函数的参数进行运算加工,直到函数的参数迭代序列的每个元素都迭代完毕,返回所有加工后的元素构成新序列



print(list(map(lambda x:x*2,range(10))))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-26 10:33:57 | 显示全部楼层
很深奥,然后看起来很牛掰
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 13:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表