高阶函数map,reduce,filter函数

yumo6664个月前 (05-16)技术文章75

高阶函数

把函数作为参数传入,这样的函数称之为高阶函数,告诫函数时函数式编程的体现。函数式编程就是指这种高度抽象的编程范式。

1.1 体验高阶函数

# 对数字求绝对值函数:abs()
print(abs(-100))  # 100

# 求四舍五入函数:round()
print(round(1.89))  # 2
print(round(3.3))  # 3

# 体验高阶函数:任意两个数字,整理之后再进行求求和运算。
# 方法1:此方法只能进行一种整理
def sum_num(a, b):
    return abs(a) + abs(b)


result = sum_num(19.9, -23.3)
print(result)  # 43.2


# 方法2:此方法可以将一种函数作为参数传入
def sum_num(a, b, f):
    return f(a) + f(b)


result = sum_num(19.9, -23.3, round)
print(result)  # -3

2.2 内置高阶函数

2.2.1 map()

map(func, lst), 将传入的函数变量func作用到列表lst变量的每个元素中,并将结果组成新的列表(python2)或python3返回迭代器。

# 需求,计算列表list1中各个数字的2次方。
list1 = [1, 2, 3, 4, 5]


def func(a):
    return a ** 2
result = map(func, list1)
print(result)  # <map object at 0x033B11B0>
print(list(result))  # [1, 4, 9, 16, 25]

2.2.2 reduce()

reduce(func, lst), 其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累计计算。 reduce()传入的参数func必须接收2个参数。

# 需求,计算列表list1中各个数字的累加和
# 1、导入functools模块
import functools

list1 = [1, 2, 3, 4, 5]


# 2、定义功能函数
def func(a, b):
    return a + b


# 3、调用reduce函数:reduce功能函数计算的结果和序列的下一个数据进行累加计算。
result = functools.reduce(func, list1)
print(result)  # 15

2.2.3 filter()

filter(func, lst)函数用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象,如果转换为列表,可以使用list()来转换。

list1 = [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 定义功能函数,过滤序列中偶数
def func(x):
    return x % 2 == 0


# 3、调用reduce函数:reduce功能函数计算的结果和序列的下一个数据进行累加计算。
result = filter(func, list1)
print(result)  # <filter object at 0x02B711B0>
print(list(result))  # [-2, 0, 2, 4, 6, 8, 10]

相关文章

Python常用函数整理

以下是Python中常用函数整理,涵盖内置函数、标准库及常用操作,按类别分类并附带示例说明:一、基础内置函数print()输出内容到控制台。pythonprint("Hello, World!...

全国计算机等级考试二级Python易错真题详解-流程控制-单选题

流程控制(单选题)说明:本文中的题目,全都来自全国计算机等级考试二级Python语言程序设计考试的真题,且都为易错题。题干最后如有编号,则是 python123 平台上的题号,以方便学生查找和索引。在...

Python第十节—常用的内置函数

Pyhton中有一些内置的常用函数,如果每个函数都需要大家定义,那么会很浪费时间,所有今天给大家讲一些Python中的一些内置函数,先讲一讲常用的数学函数取绝对值abs()取长度len()取最大值ma...

8-Python内置函数

Python 提供了丰富的内置函数,这些函数可以直接使用而无需导入任何模块。以下是一些常用的内置函数及其示例:1-print()1-1-说明输出指定的信息到控制台。1-2-例子2-len()2-1-说...

避坑!Python函数设计避坑指南:90%新手不知道的高阶技巧

一、开发中的血泪教训场景:函数参数失控导致代码维护困难# 错误案例:参数混杂引发灾难 def process_order(item, price, discount=0.1, tax_rate=0...

Python 最常用的语句、函数有哪些?

1. #coding=utf-8① 代码中有中文字符,最好在代码前面加#coding=utf-8② pycharm不加可能不会报错,但是代码最终是会放到服务器上,放到服务器上的时候运行可能会报错。③...