filter,顾名思义,就是一个过滤器。其作用是从列表(或其他序列类型)中筛选出满足条件的子列表,filterpython的内置函数,无须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详解相关推荐

  1. [转载] python支持complex吗_Python 内置函数complex详解

    参考链接: Python complex() 英文文档: class complex([real[, imag]]) Return a complex number with the value re ...

  2. python int函数详解_Python内置函数OCT详解

    英文文档:oct ( x ) Convert an integer number to an octal string. The result is a valid Python expression ...

  3. python中的complex是什么意思_Python 内置函数complex详解,pythoncomplex

    Python 内置函数complex详解,pythoncomplex 英文文档: class complex([real[, imag]]) Return a complex number with ...

  4. python什么元素为真_如何使用Python基础内置函数

    如何使用Python基础内置函数 发布时间:2020-08-05 13:46:59

  5. python中dir用法_Python内置函数dir详解

    1.命令介绍 最近学习并使用了一个python的内置函数dir,首先help一下: >>> help(dir) Help on built-in function dir in mo ...

  6. 【Python入门】Python 63个内置函数超级详解

    Python内置了一些非常精巧且强大的函数,对初学者来说,一般不怎么用到,但是偶尔会碰到,我也是用了一段时间python之后才发现,卧槽,还有这么好的函数,每个函数都非常经典,而且经过严格测试,使用内 ...

  7. Python 63个内置函数超级详解

    python内置了一些非常精巧且强大的函数,对初学者来说,一般不怎么用到,但是偶尔会碰到,我也是用了一段时间python之后才发现,卧槽,还有这么好的函数,每个函数都非常经典,而且经过严格测试,使用内 ...

  8. Python 63个内置函数超级详解!这63个必会!

    python内置了一些非常精巧且强大的函数,对初学者来说,一般不怎么用到,但是偶尔会碰到,我也是用了一段时间python之后才发现,卧槽,还有这么好的函数,每个函数都非常经典,而且经过严格测试,使用内 ...

  9. Python内置函数 max 详解

    python文档中定义了很多内置函数,今天有个同学问到max函数到底在什么情况下可以使用,模模糊糊的记得在序列中都可以使用,但是并不是准确的回答.以下是更详细的内容 一.参数 首先在文档中查看max函 ...

最新文章

  1. vue - 使用axios
  2. 100个必会的python脚本-学会这个Python库,至少能减少100行代码
  3. IIS问题:Server Application Error 的解决
  4. 再谈网络字节顺序,大小端问题
  5. Hyperledger Fabric 命令整理
  6. php提取bing背景,PHP代码获取bing每日背景
  7. nosqlbooster 破解free
  8. unity中eulerAngles和rotation的区别
  9. Dropping Balls
  10. Viddy排名App Store免费应用第二,力压InstagramDraw Sth
  11. 植物大战僵尸修改金币以及关卡
  12. 收藏!一文搞定工作中Git的使用实践和常用命令合集
  13. win10下WAMP Server安装
  14. jacobi方法 matlab,Jacobi(雅可比)迭代原理与matlab代码
  15. AI 一键抠图助你快速打造活动宣传海报
  16. 利用Java8新特性stream流给集合中的某个属性赋值
  17. maven和gradle深析
  18. 颜色的整数值转换成RGB值
  19. “马的遍历”问题的贪婪法解决算法
  20. 研究生毕业答辩必看ppt幻灯片使用总结(转载)

热门文章

  1. redis命令之哈希表类型lrange命令用法详情
  2. 编译原理——DFA的编程实现
  3. 软件压力测试有必要吗,压力测试在软件项目管理中的意义
  4. 启用本地IIS服务器操作
  5. Android 正则表达式验证手机和邮箱格式是否正确
  6. 微软决定于2022年停止对 IE 浏览器的支持
  7. Win11拖拽文件偶现卡顿死机情况解决
  8. 控制app字体大小不随手机字体大小影响
  9. Java学习日记:UI篇(6)--谢尔宾斯基地毯图
  10. 字节,发工资了....