写了几个月的python,leader的需求基本都能实现。但自知对python的基本功掌握不够,学习的不够系统。所以写下此文补补基础。
1定义
高阶函数:可以把别的函数当做参数传入的函数就叫做高阶函数。比如:map,reduce,filter。
2三大常见的高阶函数
2.1map
图1import 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)
网友评论