【python笔记】高阶函数map、filter、reduce

简介: 【python笔记】高阶函数map、filter、reduce

前言

map()reduce()filter()是python的三个高阶函数。所谓高阶函数,指的是将函数作为参数并返回函数作为结果的函数。下面代码的sing_ready只是一个简单高阶函数示例:

def ready(name):
    return f"ready,{name}!"
def sing_ready(f,n):
    print(f(n))
sing_ready(ready,"freddie")
# ready,freddie!

map函数

map()函数接收一个函数和一系列可迭代对象作为参数,并将函数作用于可迭代对象中的每个元素后输出。示例如下:

# 语法:map(函数,可迭代对象)
def f1(a:int) -> int:
    return a*a
print(list(map(f1,[i for i in range(10)])))
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

也可以使用lambda匿名函数实现相同功能

print(list(map(lambda x:x*x,[i for i in range(10)])))
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

filter函数

filter()函数,顾名思义,具有”筛选“功能,用于生成在调用其它函数时返回为true的值的列表。示例如下:

# 语法:filter(函数,可迭代对象)
# 筛选偶数
def f2(a:int) -> int:
    return a%2 == 0
    
print(list(filter(f2,[i for i in range(10)])))
# [0, 2, 4, 6, 8]
# 或使用lambda匿名函数
print(list(filter(lambda x: x%2==0,[i for i in range(10)])))
# [0, 2, 4, 6, 8]

reduce函数

reduce,意”减少“。reduce(function,iterable)iterable中每个元素以及上一次调用的返回结果,调用function进行处理。

在python2中,reduce()是内置函数。在python3中,需要from functools import reduce

示例:

from functools import reduce
print(reduce(lambda a,b:a+b, [i for i in range(6)]))
# 15
## 0 + 1 + 2 + 3 + 4 + 5 = 15
相关文章
|
6月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
421 1
|
9月前
|
编解码 数据安全/隐私保护 Python
抖音批量发布视频工具,自动上传视频作品笔记,python发布软件
这个抖音批量发布工具包含三个主要模块:主上传程序、配置文件和视频预处理工具。主程序
|
11月前
|
人工智能 Ruby Python
python__init__方法笔记
本文总结了Python中`__init__`方法的使用要点,包括子类对父类构造方法的调用规则。当子类未重写`__init__`时,实例化会自动调用父类的构造方法;若重写,则需通过`super()`或直接调用父类名称来显式继承父类初始化逻辑。文中通过具体代码示例展示了不同场景下的行为及输出结果,帮助理解类属性与成员变量的关系,以及如何正确使用`super()`实现构造方法的继承。
520 9
|
9月前
|
API 数据安全/隐私保护 Python
小红书批量发布协议, 抖音自动批量发布软件脚本,笔记作品视频自动发布工具【python】
这个工具框架包含了小红书和抖音的批量发布功能,支持图片和视频处理、定时发布等功能
|
9月前
|
Web App开发 数据安全/隐私保护 Python
抖音快手小红书哔哩哔哩,批量发布作品笔记视频工具,自动发布作品上传笔记视频【python】
这个工具实现了四大平台的视频批量上传功能,包含完整的异常处理和日志记录。使用时需要配置
|
9月前
|
存储 JSON API
小红书批量发布笔记工具,小红书批量上传软件,python框架分享
这个框架包含了配置文件、工具函数、API封装和主程序四个模块。使用时需要先配置账号信息,
|
7月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1169 102

推荐镜像

更多