Python基础教程(学习笔记整理DAY3)

高阶函数

  • 可以接收其他函数作为参数的函数。
  • 任务:利用add(x,y,f)函数,计算:x的平方根与y的平方根之和。

代码演示如下:

import math


def func(x,y,f):   # 可以接收其他函数作为参数,这样的函数即为“高阶函数”
    return f(x) + f(y)


print(func(4,9,math.sqrt))  # 5


def compute(a):
    return a ** 2


print(func(2,3,compute))  # 13
print(func(2,3,lambda x:x**3))   # 补充:匿名函数

结果如下:

5.0
13
35

map()函数

  • map()是 Python内置的高阶函数,它接收一个函数f和列表或元组对象,并通过把函数f依次作用在列表或元组的每个元素上。
  • 任务:把列表中的每个字符串的第一个字母大写,其余小写。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-udlwRNNT-1593599285084)(C:\Users\Lenovo\Desktop\图片1.png)]

代码演示如下:

# map()高阶函数会对传入的列表或元祖中的每个元素使用接收的函数进行处理


# 任务:把列表中的每个字符串的第一个字母大写,其余小写
fruits = ["aPPLe","bANAna","oRANGE"]

result = map(lambda s:s[0].upper()+s[1:].lower(),fruits)
print("经过map()处理过的列表:",list(result))   # 使用list()函数将最终的结果转化为列表

结果如下:

经过map()处理过的列表: ['Apple', 'Banana', 'Orange']

reduce()函数

  • reduce()函数接收一个函数 f,一个序列,reduce()传入的函数 f 必须接收两个参数,reduce()对序列的每个元素反复调用函数f,并返回最终结果值。

代码演示如下:

# reduce()对序列的每个元素反复调用接收到的函数f,并返回最终结果值
# 注意:对于接收到的函数f,必须有两个参数
from functools import reduce   # 导入reduce函数


def add(x,y):   # 传入reduce()中的函数必须接收两个参数
    return x + y


print(reduce(add,range(1,101)))
print(reduce(lambda x,y:x+y,range(1,101)))

结果如下:

5050
5050

filter()函数

  • filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个可迭代对象,这个函数 f 的作用是对每个元素进行判断
  • f返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kt7bHA9d-1593599285087)(C:\Users\Lenovo\Desktop\图片2.png)]


代码演示如下:

~~~Python 
# filter()高阶函数用于对传入的可迭代对象进行元素过滤

filter_object = filter(lambda x:x%2==0,range(1,101))
print(list(filter_object))   # 使用list()函数转化为列表

结果如下&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值