高阶函数map,reduce,filter函数

高阶函数

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

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中很常用的函数map(),一起来看看用法

目录一、函数作用二、map()函数的语法三、map()函数实例四、运行结果出现:报错一、函数作用map()函数是Python中的一个内置函数,它的功能是:将指定的函数,依次作用于可迭代对象的每个元素,...

python map函数的用法和特点

Python 的 map 函数的主要任务是将指定的函数应用到可迭代对象(如列表、元组、集合等)的每个元素上,进而生成一个新的可迭代对象。这个概念还是比较好懂的,但是有点拗口。我们举个简单例子来解释一下...

Python语言学习实战-内置函数map()的使用(附源码和实现效果)

实现功能Python内置函数map()可以将一个函数应用于一个或多个可迭代对象中的每个元素,然后返回一个新的可迭代对象,其中包含所有应用函数后的结果。map()函数的语法如下:map(function...

python中的map和filter避坑指南

Pythonic的方式使用map和filter列表迭代在python中是非常pythonic的使用方式def inc(x): return x+1 >>> list(map...

python3:map函数和filter函数详解

这篇文章主要介绍了python3 map函数和filter函数详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下map()函数可以对一个数据进行同等...

[python] Python map函数总结

Python map函数总结本文主要介绍如何使用Python(Python3版本)的内置map()函数。简单来说map()函数会将指定的函数依次作用于某个序列的每个元素,并返回一个迭代器对象。map语...