python基础-高阶函数

我是张晨,一转眼,我在新课已经学习了很长一段时间。回顾这几个月的时间,我收获了很多知识。这里是我的一点学习笔记。
一、递归的了解与应用

递归算法三定律:

递归算法必须要有结束条件(最小规模问题的直接解决)

递归算法必须能改变状态向基本结束条件演进(减小问题规模)

递归算法必须调用自身(解决减小了规模的相同问题)
可以使用sys模块查看和设置递归的最大深度

import sys
print(sys.getrecursionlimit())

sys.setrecursionlimit(2000)

print(sys.getrecursionlimit())

1~5相加示例:

def func(data):
    if data == 1:  # 设置出口
        return 1
    return data + func(data - 1)
print(func(5))

运行结果:

在这里插入图片描述

二、lambda的作用
lambda 匿名函数 一个非常简单的函数简写方式
特点:没有名字 不必要担心函数名称占用问题 一个零时的函数 只使用一次

三、lambda表达式的应用
使用场景:一般和高阶函数配合使用

def add(a, b):
    return a + b
print(add(1, 1))

运行结果:


当函数里面最多一行代码的时候 那么这个函数就可以转换为匿名表达式

def add(a, b):
    return a + b
print(add(1, 1))
add1 = lambda a, b: a + b
print(add1(1, 1))

运行结果:
在这里插入图片描述
无参

def get():
    print('给我一根棒棒糖')
get()

运行结果:

四、高阶函数map

一个函数使用另外一个函数

一个函数的功能可以通过另外一个函数来定义/实现 这样的函数就叫做高阶函数

list_data = [[3, '2'], [1, '3'], [2, '1']]
list_data.sort(key=lambda y: y[1])  # 自己选择排序的规则
print(list_data)

运行结果:
在这里插入图片描述

map映射

list1 = ['a', 'a', 'a']  # 所有的字符串a前面加一个字符串1
list2 = ['1' + i for i in list1]
print(list2)

运行结果:

在这里插入图片描述

五、高阶函数reduce(减)

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
from functools import reduce  # 从 functools 导入 reduce
print(reduce(lambda a, b: a + b, list1))

运行结果:
在这里插入图片描述
六、高阶函数filter(过滤)

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]  # 把小于5的数据打印出来
list2 = [i for i in list1 if i < 5]
print(list2)
list2 = list(filter(lambda x: x < 5, list1))
print(list2)

运行结果:
在这里插入图片描述
暂时先分享这么多吧,希望大家在学习过程当中都能有所收获,感谢新课,如果想获取更多资料或者联系加群,可以关注我们新课的微信公众号,后台自动回复获取代码笔记资料。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值