python四大高阶函数_Python-高阶函数

高阶函数至少符合以下两个条件中的一个:

1.接收一个或者多个函数作为参数

2.将函数作为返回值返回

list1 = [i for i in range(2, 100, 7)]

def fun1(i):

"""

检查一个数是否是偶数

:param i: 待检测的数

:return: 返回bool值

"""

if i % 2 == 0:

return True

return False

def fun2(i):

"""

检查一个数是否是奇数

:param i: 待检测的数

:return: 返回bool值

"""

if i % 2 != 0:

return True

return False

def fun3(i):

"""

检查一个数是否是大于5

:param i: 待检测的数

:return: 返回bool值

"""

if i > 5:

return True

return False

def fun(func, lst):

"""

对一个列表进行操作,并将结果以新列表的方式返回

:param func: 需要进行的操作

:param lst: 待操作的列表

:return: 返回一个列表

"""

new_list = []

for n in lst:

if func(n):

new_list.append(n)

return new_list

# 将fun2作为参数传递到fun中,所以不能加括号(fun2()),加括号代表调用方法,得到返回值

print(fun(fun2, list1)) #[9, 23, 37, 51, 65, 79, 93]

# filter(function,iterable) 可以从序列中过滤出符号条件的元素,保存到一个新的序列中返回

# 参数:

# 1.函数,根据该函数来过滤序列(可以迭代的结构)

# 2.需要过滤的序列(可以迭代的结构)

# 返回值:

# 过滤后的新序列(可迭代的结构)

# 将fun3当做参数传递到filter()中,函数调用完就没用了

print(list(filter(fun3, list1))) # [9, 16, 23, 30, 37, 44, 51, 58, 65, 72, 79, 86, 93]

将函数作为返回值返回

# sum()用来求一个列表中所有元素的和

# print(sum(nums)/len(nums))

def make_average():

# 创建一个列表,用来保存数值

nums = []

def average(n):

# 将n添加到列表中

nums.append(n)

# 求平均数

return sum(nums)/ len(nums)

return average # 返回内层函数

average = make_average()

print(average(10))# 10.0

print(average(20))# 15.0

print(average(30))# 20.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值