Python简明讲解filter函数的用法

Python简明讲解filter函数的用法

目录

一、filter函数的定义

二、filter函数实例

求一个序列中大于零的元素组成的新序列

求序列中非零数组成的新序列

求字典中大于2的键组成的新序列

求100以内既是3的倍数又是奇数的正整数

任何事情都是由量变到质变的过程,学习Python也不例外。只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。

一、filter函数的定义

filter函数是Python中常用的内置函数,调用无需加载库,直接使用即可。它主要用来根据特定条件过滤迭代器中不符合条件的元素,返回一个惰性计算的filter对象或迭代器。需要用list函数进行转换,才能得到符合的条件元素组成的新列表。

其基本调用语法如下:

filter(function or None, iterable)

function:函数,作用是对iterable中的每个元素判断是否符合特定条件。

None:不调用任何函数,只对可迭代对象中的元素本身判断真假,保留为真的元素。

iterables:可迭代对象(序列、字典等)。

二、filter函数实例 求一个序列中大于零的元素组成的新序列

我们先来看下filter函数不加list的结果,代码如下:

c = [-10, 28, 9, -5, 30, 5] filter(lambda a:a>0, c)

得到结果:

<filter at 0x27950dbb9d0>

返回一个惰性计算的filter对象或迭代器。接下来看下用list函数进行转换会得到什么,代码如下:

c = [-10, 28, 9, -5, 30, 5] list(filter(lambda a:a>0, c))

得到结果:

[28, 9, 30, 5]

从结果知,filter函数的作用是挑选出了序列c中大于0的元素组成了新的对象或迭代器。通过list函数进行转换,进而得到符合条件的元素组成的新列表。如果有朋友对代码中的lambda函数不熟悉,可以参考【Python常用函数】一文让你彻底掌握Python中的lambda函数。

求序列中非零数组成的新序列

在filter函数定义中提到,filter函数中参数None表示不调用任何函数,只对可迭代对象中的元素本身判断真假,保留为真的元素。

测试代码如下:

#找出序列中的非0数 c2 = [4, 9, 0, -5, -8, 7, 0] list(filter(None, c2))

得到结果:

[4, 9, -5, -8, 7]

由于0在Python中默认为False,非0默认为True,所以在筛选过程中对0进行了过滤。

求字典中大于2的键组成的新序列

在filter函数定义中提到,它对可迭代对象进行处理,所以包括了列表和字典等对象。前两个例题都是对列表进行处理,本例看下对字典的处理。代码如下:

#找出字典中大于2的键 list(filter(lambda x:x>2, {1:'杨紫', 2:'刘诗雯', 3:'张继科', 4:'王明', 5:'刘明'}))

得到结果:

[3, 4, 5]

从结果知,filter函数对字典进行处理的时候,筛选的对象是字典的键,而不是字典的值。

求100以内既是3的倍数又是奇数的正整数

最后我们来看一个小学常常碰到的题,求100以内既是3的倍数又是奇数的正整数。代码如下:

#求100以内既是奇数又是3的倍数的正整数 import numpy as np list(filter(lambda x:x%2!=0 and x%3==0, np.arange(1, 101)))

得到结果:

[3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]

其中np.arange(1, 101))表示1到100公差为1的等差数列。

x%2!=0表示该数不能整除2,即为奇数。

x%3==0表示该数能整除3,即为3的倍数。

可以人工复核一下,发现Python得到的结果是正确的。

到此这篇关于Python简明讲解filter函数的用法的文章就介绍到这了,更多相关Python filter函数内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    学习写字楼新选择6000元主流配置

    学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办公和娱乐平台,充分考虑办公室的办公需求和娱乐需求,以约6000元的预算和cost-e

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    Lucene学习之高亮显示

    Lucene学习之高亮显示,索引,字符,在搜索引擎中我们经常会看到这样的情景: 红色部分我们称之为高亮显示,lucene提供了HighLighter模块来实

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    excel常用函数都有哪些?

    excel常用函数都有哪些?,函数,哪些,常用,1、SUM函数:SUM函数的作用是求和。函数公式为=sum()例如:统计一个单元格区域:=sum(A1:A10)  统计多个

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高