当前位置: 首页 > news >正文

Python进阶-----高阶函数->filter() 函数

目录

前言:

 filter() 函数介绍

filter() 函数使用示例

1.与循环对比

2.与lambda函数综合使用

3.使用None过滤False

4.过滤字典相关数据


前言:

        家人们,当你们获取了一个序列的时候,想要把一些内容去掉,保留一部分内容的时候,你们应该都是用循环去一个个处理吧,这样很麻烦,而且效率低下,那这时候怎么办呢?有没有更好的方法呢?

        当然有啦,所以今天我们一起来学习一个新的高阶函数filter() 函数,filter在英语里面是过滤筛选的意思,同样在Python也是过滤筛选的功能,最重要的是效率要比Python循环的效率更加高(其执行效率基本上跟C语言差不多)

在学习之前先用help(filter)查看相关信息,如图所示:

 filter() 函数介绍

格式:

filter(function, iterable)

参数说明function是表示函数,也就是筛选条件,返回值一般是布尔类型

                  iterable是表示可迭代对象

返回值返回filter类型,也就是可迭代对象(迭代器),我们可以去通过类型转换得到里面的数据,一般只能转换为元素可变性的序列类型才可以输出比如list,但是如果转换为元素不可变类型是输出不了的,比如元组tuple

filter() 函数使用示例

1.与循环对比

filter() 函数用法:

def fun(n:int)->bool:return n>5
li=[x for x in range(10)]
a=filter(fun,li)
print(a)
print(list(a))
#输出结果:
# <filter object at 0x000002E07E530490>
# [6, 7, 8, 9]

通过循环去过滤:

li=[x for x in range(10)]
new_li=[]
for i in li:if i>5:new_li.append(i)
print(new_li)
#输出结果:[6, 7, 8, 9]

2.与lambda函数综合使用

li=[x for x in range(10)]
a=filter(lambda x:x%2!=0,li)
print(a)
print(list(a))
print(tuple(a))
print(set(a))
#输出结果:
# [1, 3, 5, 7, 9]
# ()
# set()

 注意,元组和集合的元素是不可变的,所以无法转换为tuple或者set类型

3.使用None过滤False

t=(False,True,False,False,True)
new=filter(None,t)
print(list(new))
#输出结果:[True, True]

因为None是表示False的意思的,也就是说如果False进入到None那么返回值为False,所以我们可以去用来过滤掉布尔类型中的False。

4.过滤字典相关数据

di=[{'name':'python','num':1},{'name':'C','num':2},{'name':'Java','num':3}]
a=filter(lambda x:x['name']=='python',di)
print(list(a))
#输出结果:[{'name': 'python', 'num': 1}]

好了,这一期就先到这里了,我们下一期再见!

分享一张壁纸:

相关文章:

Python进阶-----高阶函数->filter() 函数

目录 前言&#xff1a; filter() 函数介绍 filter() 函数使用示例 1.与循环对比 2.与lambda函数综合使用 3.使用None过滤False 4.过滤字典相关数据 前言&#xff1a; 家人们&#xff0c;当你们获取了一个序列的时候&#xff0c;想要把一些内容去掉&#xff0c;保留一部分…...

C/C++面试可能会问三:指针和数组一样吗?

答案&#xff1a;不一样。 哪里不同&#xff1f; 数组名&#xff1a;数组名的值是一个指针常量&#xff0c;也就是数组第一个元素的地址。 它的类型取决于数组元素的类型&#xff1a;如果他们是int类型&#xff0c;那么数组名的类型就是“指向int的常量指针”&#xff1b;如果…...

数字经济新生态,中小企业如何发展营销数字化

五年弹指一挥间&#xff0c;中国数字经济正从尝试探索迈向快速发展&#xff0c;这一趋势&#xff0c;从今年两会的国务院机构改革、总理政府工作报告、部长通道答疑解惑、科技领域大佬提案中都能看出来。 在政府工作报告中&#xff0c;我们可以看到数字经济在不断壮大&#xff…...

【网络】https协议

&#x1f941;作者&#xff1a; 华丞臧. &#x1f4d5;​​​​专栏&#xff1a;【网络】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 推荐一款刷题网站 &#x1f449; LeetCode刷题网站 文章…...

【11】SCI易中期刊推荐——计算机方向(中科院4区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…...

STM32 OTA应用开发——通过串口/RS485实现OTA升级(方式2)

STM32 OTA应用开发——通过串口/RS485实现OTA升级&#xff08;方式2&#xff09; 目录STM32 OTA应用开发——通过串口/RS485实现OTA升级&#xff08;方式2&#xff09;前言1 环境搭建2 功能描述3 程序编写3.1 BootLoader部分3.2 APP的制作4 修改工程中的内存配置4.1 Bootloader…...

【Spring6】| Bean的生命周期(重要)

目录 一&#xff1a;Bean的生命周期 1. 什么是Bean的生命周期 2. Bean的生命周期之5步 3. Bean生命周期之7步 4. Bean生命周期之10步 5. Bean的scop&#xff08;作用域&#xff09;不同&#xff0c;管理方式不同 6. 自己new的对象如何让Spring管理 一&#xff1a;Bean的…...

【C#】单据打印方案(定义打印模板、条形码、二维码、图片、标签)

系列文章 C#项目–业务单据号生成器&#xff08;定义规则、自动编号、流水号&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129129787 C#项目–开始日期结束日期范围计算&#xff08;上周、本周、明年、前年等&#xff09; 本文链接&…...

前后端身份验证

1、web 开发模式 【】基于服务端渲染的传统 Web 开发模式 【】基于前后端分离的新型 Web 开发模式&#xff1a;依赖于 Ajax 技术的广泛应用。后端只负责提供 API 接口&#xff0c;前端使用 Ajax 调用接口的开发模式 2、身份认证 【】服务端渲染推荐使用 Session 认证机制 【】…...

【蓝桥杯嵌入式】ADC模数转换的原理图解析与代码实现(以第十一届省赛为例)——STM32G4

&#x1f38a;【蓝桥杯嵌入式】专题正在持续更新中&#xff0c;原理图解析✨&#xff0c;各模块分析✨以及历年真题讲解✨都在这儿哦&#xff0c;欢迎大家前往订阅本专题&#xff0c;获取更多详细信息哦&#x1f38f;&#x1f38f;&#x1f38f; &#x1fa94;本系列专栏 - 蓝…...

Matlab表示 CDF 时间值

从 CDF 纪元对象中提取日期信息。CDF 表示时间的方式与 MATLAB 不同。CDF 将日期和时间表示为自 1-Jan-0000 以来的毫秒数。这在 CDF 术语中称为纪元。为了表示 CDF 日期,MATLAB 使用一个称为 CDF 纪元对象的对象。MATLAB 还可以将日期和时间表示为日期时间值或日期序列号,即…...

基于Halcon的条码定位与识别【包含 一维码 和 二维码 】

1.针对一维码问题,先列代码: dev_update_off () dev_close_window () dev_open_window (0, 0, 600, 819, black, WindowHandle) dev_set_draw (margin) *读图 read_image (Image, 20221213-174036.png)*获取一维码区域对原图进行抠图 gen_rectangle1 (ROI_0, 2169.33, 1835.…...

每天学一点之多线程

多线程 一、相关概念 并发与并行 并行&#xff08;parallel&#xff09;&#xff1a;指多个事件任务在同一时刻发生&#xff08;同时发生&#xff09;。 并发&#xff08;concurrency&#xff09;&#xff1a;指两个或多个事件在同一个微小的时间段内发生。程序并发执行可以…...

自动化测试必会的数据驱动测试你真的学会了吗?

数据驱动测试 在实际的测试过程中&#xff0c;我们会发现好几组用例都是相同的操作步骤&#xff0c;只是测试数据的不同&#xff0c;而我们往往需要编写多次用例来进行测试&#xff0c;此时我们可以利用数据驱动测试来简化该种操作。 参数化&#xff1a; 输入数据的不同从而…...

cpp之十大排序算法

十大排序算法 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-riZ9z3wf-1678258189998)(null)] 排序算法的稳定性&#xff1a;在具有多个相同关键字的记录中&#xff0c;若经过排序这些记录的次序保持不变&#xff0c;说排序算法是稳定的。 插入排序…...

java-正装照换底色小demo-技术分享

文章目录前言java-正装照换底色小demo-技术分享01 实现思路02 效果02::01 原图:02::02 执行单元测试:02::03 效果:03 编码实现前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞…...

(枚举)(模拟)(二位前缀和)99. 激光炸弹

目录 题目链接 一些话 切入点 流程 套路 ac代码 题目链接 99. 激光炸弹 - AcWing题库 数&#xff5e;啦&#xff01;我草&#xff0c;又~在&#xff5e;水&#xff5e;字&#xff5e;数&#xff5e;啦&#xff01;我草&#xff0c;又~在&#xff5e;水&#xff5e;字&am…...

vue3+vite项目移动端适配:postcss-pxtorem和amfe-flexible

一&#xff0c;定义 postcss-pxtorem PostCSS 的一个插件&#xff0c;可以从像素单位生成 rem 单位。 amfe-flexible amfe-flexible是配置可伸缩布局方案&#xff0c;主要是将1rem设为viewWidth/10。 二&#xff0c;使用 1. 设置 viewport 在 index.html 中&#xff1a; &l…...

sin x和cos x的导数

我们都知道(sin⁡x)′cos⁡x(\sin x)\cos x(sinx)′cosx&#xff0c;(cos⁡x)′−sin⁡x(\cos x)-\sin x(cosx)′−sinx&#xff0c;但是为什么呢&#xff1f; sin⁡x\sin xsinx的导数 (sin⁡x)′lim⁡Δx→0sin⁡(xΔx)−sin⁡xΔx(\sin x)\lim\limits_{\Delta x\rightarrow 0…...

html下自动消失的提示框jQuery实现

引言 最近在找一个可以自动消失的提示框&#xff0c;找来找去&#xff0c;找到了这个&#xff1a;提示框设置_html页面提示框等待一定时间消失博主写得很好&#xff0c;可以直接复制运行出来&#xff0c;我也从中得以受益。本篇文章对这篇博客的代码做了一些小的更新&#xff…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...

【QT控件】显示类控件

目录 一、Label 二、LCD Number 三、ProgressBar 四、Calendar Widget QT专栏&#xff1a;QT_uyeonashi的博客-CSDN博客 一、Label QLabel 可以用来显示文本和图片. 核心属性如下 代码示例: 显示不同格式的文本 1) 在界面上创建三个 QLabel 尺寸放大一些. objectName 分别…...

MyBatis-Plus 常用条件构造方法

1.常用条件方法 方法 说明eq等于 ne不等于 <>gt大于 >ge大于等于 >lt小于 <le小于等于 <betweenBETWEEN 值1 AND 值2notBetweenNOT BETWEEN 值1 AND 值2likeLIKE %值%notLikeNOT LIKE %值%likeLeftLIKE %值likeRightLIKE 值%isNull字段 IS NULLisNotNull字段…...

LeetCode第244题_最短单词距离II

LeetCode第244题&#xff1a;最短单词距离II 问题描述 设计一个类&#xff0c;接收一个单词数组 wordsDict&#xff0c;并实现一个方法&#xff0c;该方法能够计算两个不同单词在该数组中出现位置的最短距离。 你需要实现一个 WordDistance 类: WordDistance(String[] word…...