python的lambda、filter、map、reduce 用法笔记

 

基本概念

lambda 为关键字。filter,map,reduce为内置函数。

lambda是实现函数的简易方法

注意不要在lambda表达式中使用 return 

#常规的python函数
def pow(x):
    return x**2

pow=lambda x: x**2

参考:https://www.cnblogs.com/yufeihlf/p/6179982.html

lambda:https://blog.csdn.net/zjuxsl/article/details/79437563

 

filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)。过滤不符合的条件元素。

filter(function or None, sequence) -> list, tuple, or string:入参为函数和列表/元组/字符串,返回值为item列表/元组/字符串。

例子:

filter(lambda x:x if x%2==0 else False,range(110))

返回的是满足条件即返回True的值,返回对象。

map(function, sequence) :对sequence中的item依次执行function(item),将执行结果function(item)组成一个List返回。

map(function, sequence[, sequence, ...]) -> list:入参是为函数和列表/元组/字符串,返回值为function(item)列表。

例子:

map(lambda x:x**2,[1,2,3,4])

返回经过function处理后的数据。[1,4,9,16],返回的是一个对象

from functools import reduce:python3中reduce()已移到functools中

reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用。function接收的参数个数只能为2,先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给function,然后只返回一个结果。starting_value可选,初始参数

reduce(function, sequence[, initial]) -> value:入参是为函数和列表/元组/字符串和初始值,返回值为数值。

from functools import reduce
reduce(lambda x,y:x**y,[1,2,3,4],5)

#59604644775390625

设定初始值为5,一开始迭代5^1,然后再拿结果(5^1)^2……如此类推,最后结果是5^(1*2*3*4)=59604644775390625

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值