自学Python:lambda表达式用法、两个实用的BIF

lambda

python使用lambda表达式来创建匿名函数,所谓匿名函数就是没有名字的函数,就是在创建函数时,不用提供函数的名称,先来看看lambda的用法和匿名函数与普通函数的区别。

我们先来举一个普通函数的例子:

def ds(x):
	return 2 * x - 1
ds(5)

在这里插入图片描述
那如果使用lambda表达式会变成什么样子呢?
g = lambda x: 2 * x - 1
g(5)
在这里插入图片描述
Python的lambda表达式语法非常精简(符合python风格),基本语法是在冒号(:)左边放原函数的参数,可以有多个参数,用(,)隔开即可,冒号的右边是返回值。

我们来看看有多个参数是的lambda写法
先看一下普通函数写法:

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

在这里插入图片描述
转换为lambda写法:
g = lambda x, y: x + y
g(3, 4)
在这里插入图片描述

lambda表达式的作用:
(1): Python写一些执行脚本时,使用lambda就可以省下定义函数过程,比如说只是需要写一个简单的脚本来管理服务器时,就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简。
(2):对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,有时候给函数起个名字是个非常头疼的问题,使用lambda就不需要考虑命名的问题了。
(3):简化代码的可读性,由于阅读普通函数经常要跳到开头def定义的位置,使用lambda函数可以省去这样的步骤。

两个实用的BIF:filter()和map()

1、filter()
filter()函数是一个过滤器,过滤器的作用就是将想要的东西留下,将不想要的东西过滤掉,python应该如何实现过滤器功能呢,我们先来看一下filter()函数的官方解释:

在这里插入图片描述
大概的意思就是:filter有两个参数,第一个参数可以是一个函数也可以是None,如果是一个函数的话,则将第二个可迭代数据里的每一个元素作为函数的参数进行计算,把返回的True值筛选出来,如果第一个参数为None,则直接将第二个参数中为True的值筛选出来。
举几个例子:
在这里插入图片描述
写一个过滤奇数的例子:
**
def odd(x):
return x % 2
temp = filter(odd, range(10))
list(temp)
**

在这里插入图片描述
这个肯定比使用for循环与if语句写出来的代码简洁多了
进一步优化,我们可以将filter与之前的lambda表达式结合起来实现奇数过滤功能:
**
list(filter(lambda x: x % 2, range(10)))
**
在这里插入图片描述
2、map()
map在这里不是地图的意思,在编程领域,map一般作“映射”来解释,map()这个内置函数也有两个参数,仍然是一个函数和一个可迭代序列,将序列的每一个元素作为函数的参数进行加工,知道可迭代序列每个元素都加工完毕,返回所有加工后的元素构成的新序列。
我们用map()函数来计算一下10以内所有整数的平方值
**
list(map(lambda x: x * x,range(11)))
**

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值