三个高级用法lambda表达式和filter()、map()函数

一、lambda关键字创建匿名函数

可以简化代码的可读性,对于一些程序里面只需要调用一两次的函数,也可以省去命名的烦恼。

基本语法:

lambda param__list:expression

param__list,参数列表

#expression,表达式

冒号左边放原函数参数,有多个参数用逗号隔开,冒号右边放返回值。

a、普通函数

>>> def test_lambda(x,y):
	return x + y
>>> 
>>> test_lambda(4,7)
11
b、匿名函数

>>> data = lambda x,y : x + y
>>> 
>>> data(4,7)
11

二、filter()函数

filter是Python里面的过滤器,通过过滤器可以保留所需要的信息,丢掉不需要的信息。

基本语法:

filter(function,iterable)

#filter返回的结果必须是True或者False

#第一个参数可以是一个函数也可以是None,如果是函数,则将第二个参数里面的每一个元素作为函数参数进行计算,把返回值为True的元素筛选出来。如果是None,则直接将第二个参数里面返回值为True的元素筛选出来。

#第二个参数接收一个可迭代的序列。

a,第一个参数为None

>>> data = filter(None,[1,'老胡',0,False])
>>> 
>>> result = list(data)
>>> 
>>> print(result)
[1, '老胡']

因为0和False的返回值为False,所以返回了1和字符串

b、第一个参数为函数

>>> #利用filter()写一个筛选0—30的基数的过滤器
>>> 
>>> def test_filter(x):
	return x % 2

>>> data = filter(test_filter,range(31))
>>> 
>>> result = list(data)
>>> 
>>> print(result)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29] 

结合lambda可写为

>>> list(filter(lambda x : x % 2,range(31)))

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]

三、map()函数

将序列中的每一个元素,作为函数的参数进行运算,返回所有元素运算后的新序列。

基本语法

map(function,*iterable)

#第一个参数接收一个函数。

#第二个参数接收一个或多个可迭代的序列。

>>>#将两个列表元素相乘之后的结果,放在一个新列表中
>>>
>>> a = [1,3,5,7,9]
>>> 
>>> b = [2,4,6,8,10]
>>> 
>>> def test_map(x,y):
	return x * y

>>> data = map(test_map,a,b)
>>> 
>>> result = list(data)
>>> 
>>> print(result)
[2, 12, 30, 56, 90]

结合lambda可写为

>>> a = [1,3,5,7,9]
>>> 
>>> b = [2,4,6,8,10]
>>> 
>>> list(map(lambda x,y : x * y,a,b))
[2, 12, 30, 56, 90]
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值