【Python基础】内置函数filter详解
filter
,顾名思义,就是一个过滤器。其作用是从列表(或其他序列类型)中筛选出满足条件的子列表,filter
是python
的内置函数,无须import
即可直接使用。
1 filter的基础用法
对于列表(或其他序列类型),如果希望从中筛选出满足某个约束条件的子列表,我们一般的做法是使用一个for
循环遍历每个元素然后执行相同约束条件判断,将满足条件的放入新的子列表中。例如,从列表中找出所有偶数子列表,并按对应的先后顺序放入子列表中:
a = [1, 2, 3, 4, 5]
b = []
for i in a:if i % 2 == 0:b.append(i)
那么如果使用filter
的话,使用filter
函数使得代码变得更简洁:
a = [1, 2, 3, 4, 5]
def check(i): return i % 2 == 0
b = list(filter(check, a))
2 filter与for循环性能对比
前面在讲map
时,我们知道map
函数除了能让代码更优雅以外,使用map
比使用for
循环速度更快。同样的,使用filter
远比使用for
循环快。我们做个实验,从长为100000
的列表中,查找偶数对比耗时:
import timedef test_for(length):sub_list = []begin = time.perf_counter()for i in range(length):if i % 2 == 0:sub_list.append(i)end = time.perf_counter()print('for循环耗时:', (end - begin))def test_filter(length):def check(i):return i % 2 == 0begin = time.perf_counter()sub_list = filter(check, range(length))end = time.perf_counter()print('filter耗时:', (end - begin))test_for(100000)
test_filter(100000)
输出结果如下:
for循环耗时: 0.015271199999999999
filter耗时: 1.4000000000000123e-05
从输出结果可以看到:
在
十万
级别数据上,filter
的速度大约是for
循环的1000
倍。
当然了,具体的速度对比方面跟具体的硬件有关,一般而言,如果本地机器硬件配置越高,那么这个倍数越高。所以,平时写代码时,可以稍微注意一下,是否可以使用更高效的替代方案。
如果您觉得本文对你有帮助,欢迎关注我【Python学习实战】,第一时间获取最新更新。每天学习一点点,每天进步一点点。
【Python基础】内置函数filter详解相关推荐
- [转载] python支持complex吗_Python 内置函数complex详解
参考链接: Python complex() 英文文档: class complex([real[, imag]]) Return a complex number with the value re ...
- python int函数详解_Python内置函数OCT详解
英文文档:oct ( x ) Convert an integer number to an octal string. The result is a valid Python expression ...
- python中的complex是什么意思_Python 内置函数complex详解,pythoncomplex
Python 内置函数complex详解,pythoncomplex 英文文档: class complex([real[, imag]]) Return a complex number with ...
- python什么元素为真_如何使用Python基础内置函数
如何使用Python基础内置函数 发布时间:2020-08-05 13:46:59
- python中dir用法_Python内置函数dir详解
1.命令介绍 最近学习并使用了一个python的内置函数dir,首先help一下: >>> help(dir) Help on built-in function dir in mo ...
- 【Python入门】Python 63个内置函数超级详解
Python内置了一些非常精巧且强大的函数,对初学者来说,一般不怎么用到,但是偶尔会碰到,我也是用了一段时间python之后才发现,卧槽,还有这么好的函数,每个函数都非常经典,而且经过严格测试,使用内 ...
- Python 63个内置函数超级详解
python内置了一些非常精巧且强大的函数,对初学者来说,一般不怎么用到,但是偶尔会碰到,我也是用了一段时间python之后才发现,卧槽,还有这么好的函数,每个函数都非常经典,而且经过严格测试,使用内 ...
- Python 63个内置函数超级详解!这63个必会!
python内置了一些非常精巧且强大的函数,对初学者来说,一般不怎么用到,但是偶尔会碰到,我也是用了一段时间python之后才发现,卧槽,还有这么好的函数,每个函数都非常经典,而且经过严格测试,使用内 ...
- Python内置函数 max 详解
python文档中定义了很多内置函数,今天有个同学问到max函数到底在什么情况下可以使用,模模糊糊的记得在序列中都可以使用,但是并不是准确的回答.以下是更详细的内容 一.参数 首先在文档中查看max函 ...
最新文章
- vue - 使用axios
- 100个必会的python脚本-学会这个Python库,至少能减少100行代码
- IIS问题:Server Application Error 的解决
- 再谈网络字节顺序,大小端问题
- Hyperledger Fabric 命令整理
- php提取bing背景,PHP代码获取bing每日背景
- nosqlbooster 破解free
- unity中eulerAngles和rotation的区别
- Dropping Balls
- Viddy排名App Store免费应用第二,力压InstagramDraw Sth
- 植物大战僵尸修改金币以及关卡
- 收藏!一文搞定工作中Git的使用实践和常用命令合集
- win10下WAMP Server安装
- jacobi方法 matlab,Jacobi(雅可比)迭代原理与matlab代码
- AI 一键抠图助你快速打造活动宣传海报
- 利用Java8新特性stream流给集合中的某个属性赋值
- maven和gradle深析
- 颜色的整数值转换成RGB值
- “马的遍历”问题的贪婪法解决算法
- 研究生毕业答辩必看ppt幻灯片使用总结(转载)