python高阶函数:filter、lambda、map、reduce、zip

filter、lambda、map、reduce、zip  在不同版本下使用方式有所不同,本文介绍在python3的用法

若想将上述函数得到的object对象转换成列表,可以采用 list() 函数

1.filter函数

过滤器函数,用以过滤列表中不符合条件的元素;

filter函数包含两个参数,第一个是过滤函数,第二个是待过滤列表对象;

eg.过滤掉列表中的空字符 ''

eg_list = [1,2,3,4,'','']
res = filter(None,eg_list)
res_list = list(res)
print(res_list)

#过滤后输出的结果为
res_list = [1,2,3,4]

eg.过滤掉列表中的非0元素

eg_list = [1,2,3,4,0,0]
res = filter(lambda i : i != 0,eg_list)
res_list = list(res)
print(res_list)

#过滤后输出的结果为
res_list = [0,0]

2.lambda函数

定义匿名函数,一些简单函数无需def,采用lambda可以更为减少代码冗余

格式为——lambda 参数:表达式

参数可以为多个

eg.定义函数f求解参数和

sum = lambda x,y,z : x +y +z
print(sum(1,2,3))

#计算输出结果为
6

3.map函数

参数为一个函数与一个列表

将函数作用于列表的每个元素,再返回一个新列表

eg.求解列表的平方

eg_list = [1,2,3]
f = lambda x : x * x
res = map(f,eg_list)
res_list = list(map)
print(res_list)

#计算输出结果为
res_list = [1,4,9]

4.reduce函数

python 3使用该函数前需要导入

from functools import reduce

 reduce函数用以解决列表累加、累乘问题

参数有函数,列表(,初始参数)

若有初始参数,则从初始参数和列表第一个元素起始

若无初始参数,则从列表前两个元素起始

eg.计算列表的累和

f = lambda x,y : x + y
eg_list = [1,2,3]
res = reduce(f,eg_list)
print(res)

#输出计算结果为
res = 6

若上述例子中加入一个初始参数3

f = lambda x,y : x + y
eg_list = [1,2,3]
res = reduce(f,eg_list,3)
print(res)

#输出计算结果为
res = 9

5.zip函数

zip函数可以将多个对象打包,可以循环读取其中元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值