【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
相关文章
WK
|
1月前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
78 36
|
2月前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
23 3
|
2月前
|
算法 C++ Python
Leecode 101刷题笔记之第四章:和你一起你轻松刷题(Python)
这篇博客是关于LeetCode上使用Python语言解决二分查找问题的刷题笔记,涵盖了从基础到进阶难度的多个题目及其解法。
20 0
|
2月前
|
算法 C++ Python
Leecode 101刷题笔记之第三章:和你一起你轻松刷题(Python)
本文是关于LeetCode算法题的刷题笔记,主要介绍了使用双指针技术解决的一系列算法问题,包括Two Sum II、Merge Sorted Array、Linked List Cycle II等,并提供了详细的题解和Python代码实现。
15 0
|
2月前
|
算法 C++ 索引
Leecode 101刷题笔记之第二章:和你一起你轻松刷题(Python)
本文是关于LeetCode 101刷题笔记的第二章,主要介绍了使用Python解决贪心算法题目的方法和实例。
13 0
|
2月前
|
并行计算 Python
Python错误笔记(一):CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up env
这篇文章讨论了CUDA初始化时出现的未知错误及其解决方案,包括重启系统和安装nvidia-modprobe。
182 0
|
7月前
|
开发者 Python
Python中的函数式编程:理解map、filter和reduce
【2月更文挑战第13天】 本文深入探讨了Python中函数式编程的三个主要工具:map、filter和reduce。我们将详细解释这些函数的工作原理,并通过实例来展示它们如何使代码更简洁、更易读。我们还将讨论一些常见的误解和陷阱,以及如何避免它们。无论你是Python新手还是有经验的开发者,本文都将帮助你更好地理解和使用这些强大的函数。
|
7月前
|
存储 Python
介绍Python中的函数式编程工具,如`map`、`filter`和`reduce`。
介绍Python中的函数式编程工具,如`map`、`filter`和`reduce`。
52 3
|
7月前
|
Python
Python函数式编程,map(), filter() 和 reduce() 函数的作用是什么?
Python函数式编程,map(), filter() 和 reduce() 函数的作用是什么?
71 4
|
分布式计算 Python
Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊
函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。
1561 0