前言
学而时习之,不亦说乎,本篇文章主要说一下高阶函数,喜欢的话,记得点个赞奥~
能力有限,阅知有限,不过后面我会常回家看看,有补充的再补上奥,大家有好的知识可以留言评论区哟
一、高阶函数
1.1 定义:
如果一个函数的参数是函数,那么此函数就叫高阶函数
例:
def f1(a):
a()
def f2():
print('f2')
f1(f2)
案例:
def do_everthing(a,b,fn):
return fn(a,b)
res=do_everthing(10,5,lambda n1,n2: n1+n2)
print(res)
res =do_everthing(10, 5, lambda n1,n2: n1 - n2)
print(res)
res =do_everthing(10, 5,lambda n1,n2: n1 * n2)
print(res)
res =do_everthing(10, 5,lambda n1,n2: n1 / n2)
print(res)
2.1 理解:
高阶函数让代码变得简洁优雅,配合lambda函数更好的体现它的优点
二、内置函数
1.map 函数
1.1 定义:
1)函数名称:map 2)参数两个 参数1:一个函数 参数2:是一个可以遍历的序列,如列表、集合、字典等 3)返回值:map object,是一个对新对象的引用
1.2 运用:
l3 = ["a","B","C","d"]
def uppers(a):
if a.islower():
return a.upper()
else:
return a.lower()
res = map(uppers,l3)
print(list(res))
1.3 理解:
1)map 函数内部会将 uppers 函数执行多次(次数=列表 l3 中元素个数) 2)每次执行 uppers 函数时,形参 a 会被按顺序赋值为 l3 列表中的元素 3)uppers 函数的返回值,会被 map 函数放到一个新的序列中
思考一下:新列表与原列表的元素数量一致:为什么? 原列表中有几个元素,uppers 函数就会执行几次 uppers 函数执行几次,就会 return 几个数据 而返回的数据又被添加到新列表中,所以一致
1.3小节:
map 函数的扩展性做的非常好:可以使用 set、list、tuper 函数将返回值转换为自己想要的数据类型
2.filter 函数
2.1 定义:
直接上例子: 将列表中所有大于10的数字放到一个新列表中
l1 = [10, 20, 4, 5, 60]
""" map 函数解决"""
def filter10(x):
if x > 10:
return x
"""filter 函数解决"""
res = filter(lambda x: x if x > 10 else '', l1)
print(list(res))
2.2理解:
如果想将列表中部分符合条件的元素筛选出来,就使用 filter 方法
3. reduce 函数
3.1 定义:
import functools
list = [1,2,3,4,5]
def func(a,b):
return a+b
result = functools.reduce(func,list)
print(result)
等我回忆起来了补上,见谅了~
总结
本篇文章主要是说 高阶函数, 内置函数能者多劳哈
|