美文网首页
函数式编程-高阶函数

函数式编程-高阶函数

作者: Rooooooooong | 来源:发表于2018-09-30 11:29 被阅读0次

写了几个月的python,leader的需求基本都能实现。但自知对python的基本功掌握不够,学习的不够系统。所以写下此文补补基础。

1定义

高阶函数:可以把别的函数当做参数传入的函数就叫做高阶函数。比如:map,reduce,filter。

2三大常见的高阶函数

2.1map

图1
import random
x = random.sample(range(10),5)
y = random.sample(range(10),5)
list(map(lambda a,b:a+b,x,y))

2.2reduce

图2很好的反应了reduce和map函数之间的区别


图2
from functools import reduce
reduce(lambda a,b:a+b,[0,1,2,3,4,5,6])

2.3filter

给filter函数喂一个判断条件后,函数返回相应判断结果(list),如图3。


图3
list(filter(lambda x:x>2,[5,2,4,0]))

case1:
利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']:

l = ['adam', 'LISA', 'barT']
list(map(lambda x:x.capitalize(),l))

case2:
Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list并利用reduce()求积:

l = [1,2,3,4,5]
def prod(l):
    from functools import reduce
    return reduce(lambda x,y:x*y,l)
prod(l)

相关文章

网友评论

      本文标题:函数式编程-高阶函数

      本文链接:https://www.haomeiwen.com/subject/qzkxnftx.html