高阶函数map,reduce,filter函数

yumo6661周前 (05-16)技术文章4

高阶函数

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

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]

相关文章

DAY4-step5 Python示例说明 round()函数

Round()Round()是python提供的内置函数。 它将返回一个浮点数,该浮点数将四舍五入到指定的精度。如果未指定要舍入的小数位,则将其视为0,并将舍入到最接近的整数。语法:round(flo...

Python常用函数整理

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

Python语言的12个基础知识点小结

python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序、去重、字典排序、字典、列表、字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进...

Python 中限制浮点数为两位小数的方法

在 Python 编程里,我们常常会碰到需要把浮点数限制为两位小数的情况。无论是处理财务数据,还是输出需要特定精度的结果,掌握相关方法都很有必要。下面就为大家详细介绍几种实现这一目标的方法。方法一:使...

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

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

Python浮点数保留两位小数的方法

技术背景在Python编程中,经常会遇到需要将浮点数保留特定小数位数的情况,比如在处理货币、统计数据等场景。然而,由于浮点数在计算机中采用二进制表示,存在精度问题,导致直接使用round函数有时无法得...