python中的map函数,reduce函数,lambda函数

今天主要学习了一些py高阶函数,所谓高阶函数其实就是指函数的参数可以接收别的函数

下面贴一下今天写的练习

# coding:utf-8
import math
def get_result(a,b,*fns):
    return [fn(a+b) for fn in fns]
a = float(input('a:'))
b = float(input('b:'))
print('结果是:',get_result(a,b,math.ceil,math.floor))


# coding:utf-8
from math import sqrt
def jisuan(x,*kw):
    answer=[f(x) for f in kw]
    return answer
print(jisuan(9,sqrt,abs))
 

map

map函数根据提供的函数对指定的序列做映射,定义

>>> map(lambda x:x+2, [1, 2, 3]) [3, 4, 5] >>> map(lambda x:x+2, (1, 2, 3)) [3, 4, 5] >>> map(lambda x:x+2, [1, 2], [1, 2]) Traceback (most recent call last):   File "<stdin>", line 1, in <module> TypeError: <lambda>() takes exactly 1 argument (2 given)
 

reduce

reduce函数会对参数序列中元素进行累积。定义:
reduce(function, sequence[, initial]) -> value

>>> reduce(lambda x, y:x+y, [1,2,3,4])
10
>>> reduce(lambda x, y:x+y, [1,2,3,4], 10)
20

lambda

编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数

举例对比(列表中的元素平方):

>>> map(lambda x:x*x, range(5))
[0, 1, 4, 9, 16]

>>> def sq(x):
...     return x * x
... 
>>> map(sq, range(5))
[0, 1, 4, 9, 16]
复制代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值