【Python常用函数】一文让你彻底掌握Python中的filter函数

2022-11-11 14:17:59 浏览数 (1)

任何事情都是由量变到质变的过程,学习Python也不例外。

只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。

本文和你一起来探索Python中的filter函数,让你以最短的时间明白这个函数的原理。

也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。

本文目录

  1. filter函数的定义
  2. filter函数实例 例1 求一个序列中大于零的元素组成的新序列 例2 求序列中非零数组成的新序列 例3 求字典中大于2的键组成的新序列 例4 求100以内既是3的倍数又是奇数的正整数

一、filter函数的定义

代码语言:javascript复制
filter函数是Python中常用的内置函数,调用无需加载库,直接使用即可。

它主要用来根据特定条件过滤迭代器中不符合条件的元素,返回一个惰性计算的filter对象或迭代器。

需要用list函数进行转换,才能得到符合的条件元素组成的新列表。

代码语言:javascript复制
其基本调用语法如下:
filter(function or None, iterable)
function:函数,作用是对iterable中的每个元素判断是否符合特定条件。

None:不调用任何函数,只对可迭代对象中的元素本身判断真假,保留为真的元素。
iterables:可迭代对象(序列、字典等)。


二、filter函数实例

例1:求一个序列中大于零的元素组成的新序列 我们先来看下filter函数不加list的结果,代码如下: c = [-10, 28, 9, -5, 30, 5] filter(lambda a:a>0, c) 得到结果: <filter at 0x27950dbb9d0> 返回一个惰性计算的filter对象或迭代器。 接下来看下用list函数进行转换会得到什么,代码如下: 得到结果: 例2:求序列中非零数组成的新序列 例3:求字典中大于2的键组成的新序列 例4:求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中的函数,可以翻看公众号中“学习Python”模块相关文章。

0 人点赞