python的filter方法,python里filter用例,Python简明讲解filter函数的用法

python的filter方法,python里filter用例,Python简明讲解filter函数的用法

本文将和你一起探讨Python中的filter函数,让你在最短的时间内了解这个函数的原理。你也可以利用碎片化的时间来巩固这个功能,让你在处理的过程中更有效率。

目录

一、滤波函数的定义二。filter函数示例在序列中查找由大于零的元素组成的新序列在序列中查找由非零数字组成的新序列在字典中查找由大于2的关键字组成的新序列在100内查找既是3的倍数又是奇数的正整数。任何事情都是从量变到质变的过程,学习Python也不例外。只有对一门语言中的常用函数了如指掌,才能在处理问题的过程中快速轻松地找到最佳解决方案。

一、filter函数的定义

filter函数是Python中常用的内置函数。不用加载库就可以直接调用。主要用于根据特定条件过滤迭代器中不合格的元素,返回一个过滤对象或计算懒惰的迭代器。您需要使用list函数进行转换,以获得合格元素的新列表。

它的基本调用语法如下:

过滤器(函数或无,可迭代)

Function:函数,用于判断iterable中的每个元素是否满足特定条件。

None:不调用任何函数,只判断iterable对象中的元素是真还是假,保持元素为真。

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

二、filter函数实例

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

我们先来看看过滤函数不加列表的结果。代码如下:

c=[-10,28,9,-5,30,5]

过滤器(a:A0,c)

得到结果:

0x27950dbb9d0处的滤波器

返回一个用于惰性计算的过滤器对象或迭代器。接下来,让我们来看看用list函数转换时会得到什么。代码如下:

c=[-10,28,9,-5,30,5]

列表(过滤器(a:A0,c))

得到结果:

[28, 9, 30, 5]

这样一来,filter函数的作用就是选择序列C中大于0的元素,形成一个新的对象或迭代器。通过list函数的转换,可以得到一个新的合格元素列表。如果有朋友对代码中的lambda函数不熟悉,可以参考文章【Python中的常用函数】,这样可以彻底掌握Python中的lambda函数。

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

在filter函数的定义中,提到filter函数中的参数None是指不调用任何函数,只判断iterable对象中的元素是真还是假,保留真元素。

测试代码如下:

#找出序列中的非零数字

c2=[4,9,0,-5,-8,7,0]

列表(过滤器(无,c2))

得到结果:

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

由于Python中0默认为False,非0默认为True,所以在过滤过程中会过滤掉0。

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

正如在filter函数的定义中提到的,它处理迭代对象,因此它包括列表和字典等对象。前两个例子是处理列表。在这个例子中,看看字典的处理。代码如下:

#在字典中查找大于2的键

List(filter(lambda x:x2,{1:'安迪',2:'刘石闻',3:'张继科',4:'王明',5:'刘明' }))

得到结果:

[3, 4, 5]

结果表明,当filter函数处理字典时,被过滤的对象是字典的键,而不是字典的值。

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

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

#找出一个100以内的正整数,它既是奇数又是3的倍数

将numpy作为np导入

列表(筛选器(lambda x:x%2!=0且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是3的倍数。

可以手动检查,发现Python的结果是正确的。

关于Python对filter函数使用的简明解释这篇文章到此为止。有关Python过滤器函数的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: