【Python基础】内置函数filter详解
2022/9/5 1:23:17
本文主要是介绍【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比使用for循环速度更快。同样的,使用filter远比使用for循环快。我们做个实验,从长为100000的列表中,查找偶数对比耗时:
import time def 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 == 0 begin = 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
从输出结果可以看到:
经过测试比较 ,我发现,数据量越大,for的耗时越少。
结论:filter能让代码变的简洁,而for的效率更高。数据量越大,这一点越明显。
这篇关于【Python基础】内置函数filter详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门