Python高级第四天(高阶函数map、reduce、filter)

map函数

来看一下map函数的参数与返回值。


代码演示:


map() 传入的第一个参数是 fun_a ,即函数对象本身。由于结果 list_a 是一个 Iterator , Iterator 是惰性序列,因此通过 list() 函数让它把整个序列都计算出来并返回一个list。很多情况下,也可以使用for循环也可以解决问题,但实际上map作为高级函数,将运算抽象化,还可计算复杂的函数,例如将列表的元素int类型转换为int类型,只需要一行代码。


reduce函数

我们来看一下map函数的参数与返回值,注意使用reduce函数时需要先导入,reduce函数是在 functools模块里面的。

代码演示:


依次按照顺序从列表list_a中提取两个元素作为参数,进入fun_b中进行运算,得到的结果,作为下次运算时的其中一个参数,再从列表中取出一个元素,再进行运算。最终得到的结果是总和的计算。

fifilter函数

Python内建的 filter() 函数用于过滤序列,和 map() 类似, filter() 也接收一个函数和一个序列但是不同的是 filter() 把传入的函数依次作用于每个元素,然后根据返回值是 True 还是 False 决定元素的保留与丢弃。看一下fifilter的参数。


代码演示:


这里定义了一个函数not_odd,顾名思义,不是奇数的函数,这个函数,只有当参数为2的整数倍时返回True,这里fifilter函数的两个参数第一个是过滤方法,第二个是需要过滤的列表,将列表里面的元素依次带入函数中进行运算,得到的结果如果为True时,将此结果作为新的fifilter对象保留,等待函数里面的列表执行完成后,返回最终的值,这里的值为列表,也就是过滤掉了False的数据或元素。那可以用fifilter来计算素数,计算素数的其中一个方法是埃氏筛法。给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去......

用Python来实现这个算法,我们先写一个生成器构造一个从3开始的无限奇数序列,首先偶数列先排除。


写一个筛选的函数,这里使用了匿名函数,这个函数是返回一个判断,判断是否为可整除数。


使用fifilter来过滤,不断返回素数的生成迭代。


一个基本的判断素数方法就产生了,这里我们需要手动结束一下。


好的我们来解释一下代码,看到我们这里用到了几个知识点:

生成器与迭代器、匿名函数、fifilter函数,其中

第一段代码生成了以3开始的奇数序列

第二段代码自定义过滤函数,包含匿名函数,判断值的取余是否能被整除

第三段代码用来返回素数,这里先返回一个2为素数,因为偶数都被排除了所以整除3为基础进行排除,将数据不断地迭代生成,留下对应的素数序列。

那这里就对应的fifilter函数就是用来过滤的方法进行返回数据。

点赞加关注加转发是您给我更新的动力,如需今日相关资料或者问题可私信“资料”,特别提醒本人不是培训机构,只是爱好,自学多年分享经验,谢谢。

相关文章

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语...