Python 过滤函数filter()详解

一、过滤函数定义

         它用于对容器中的元素进行过滤处理。

二、 过滤函数语法

filter(function,iterable)

参数function:提供过滤条件的函数,返回布尔型

参数iterable: 容器类型数据

三、过滤函数的应用场景

    1、筛选符合条件的元素

     需求:在列表数据中 过滤大于20的数据

#提供过滤条件函数
def ft(x):return x>20#导入随机包
import random
#随机生成不重复的数据
data=random.sample(range(15,30),10)
print(data)#返回过滤对象
filtered=filter(ft,data)
print(filtered)
print('@'*100)
print(f'{data} 大于20的数:',end='')
#转换成列表
print(list(filtered))

注意:filter()函数返回值不是一个列表

          如果需要返回列表类型,必须类型转换list()

2、数据清洗和预处理

 需求:删除一个列表中的空字符串和None值:

def removeString(str):if str=='' or str is None:return Falseelse:return Truestrings = ['mike', 'peoper','', 'boy', None, 'python', 'regular',None,'']
print(strings)filtered=filter(removeString,strings)
print(list(filtered))

3、复杂条件筛选

 需求:既能被2整除又能被4整除的元素:

#提供过滤条件函数
def ft(x):if x%2==0 and x%4==0:return Trueelse:return False
#随机生成不重复的数据
data=random.sample(range(1,30),10)
print(data)filtered=filter(ft,data)
print(f'{data} 既能被2整除又能被4整除的元素:',end='')
print(list(filtered))

4、与其他函数结合使用

需求:能被3整除的数进行过滤后再进行每个数据乘以2的映射显示

         也就是使用filter函数来筛选出一个列表中符合特定条件的元素,并使用map函数对筛选出的元素进行进一步处理。

#提供过滤条件函数
def ft(x):if x%3==0:return Trueelse:return Falsedef mp(x):return x*2
#随机生成不重复的数据
data=random.sample(range(1,21),10)
print(data)ff=filter(ft,data)
print(list(ff),type(ff))
mapped=map(mp,filter(ft,data))
# mapped=map(mp,ff)
print(list(mapped))

四、总结

   filter()函数是Python中一个强大且灵活的工具,能够简化代码并提高开发效率。通过掌握filter()函数的各种用法,你可以更加高效地处理可迭代对象,实现自己的业务逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/520765.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源】JAVA+Vue.js实现高校宿舍调配管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统展示四、核心代码4.1 查询单条个人习惯4.2 查询我的室友4.3 查询宿舍4.4 查询指定性别全部宿舍4.5 初次分配宿舍 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的…

腾讯云服务器99元一年(8元/月)优惠购买入口

腾讯云服务器99元一年(8元/月)优惠购买入口,腾讯云服务器99元一年是真的吗?真的,99元优惠购买入口 txybk.com/go/99/ 折合每天8元1个月,腾讯云99元服务器配置为2核2G3M带宽,2024年99元服务器配置…

推荐一款go语言的开源物联网框架-opengw

推荐一款go语言的开源物联网框架,设计思想不错,值的学习。 技术交流 QQ群1028704210 官网及驱动下载 http://www.opengw.cn http://www.opengw.cn/col.jsp?id104 可执行文件下载 https://gitee.com/my_iot/goAdapter/releases 码云地址 https:/…

Android14之禁止vbmeta.img签名校验(一百九十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Qt + mqtt对接阿里云平台(一)

一、阿里云平台 官网:点击跳转 二、创建产品与设备 1、“公共实例” 2、“设备管理”->“产品”->“创建产品” 3、“产品名称”->“自定义品类”->"确认" 4、“前往添加” 5、“添加设备” 6、摄入DeviceName和备注名称 7、"前往查…

JavaWeb实验 JSP 基本语法(续

实验目的 掌握JSP基本语法;掌握JSP常见用法。 实验内容 【1】创建index.jsp、first.jsp和second.jsp三个jsp文件,页面的内容分别显示“This is my JSP page of index.jsp.”、“This is my JSP page of first.jsp.”和“This is my JSP page of secon…

JavaEE进阶(14)Linux基本使用和程序部署(博客系统部署)

接上次博客:JavaEE进阶(13)案例综合练习——博客系统-CSDN博客 目录 程序配置文件修改和打包 构建项目并打包 分平台配置 数据准备 上传jar包到云服务器并运行 开放端口号 验证程序 如何查看日志得到报错信息 常见问题 关于Linux基…

深入探讨 AutoGPT:彻底改变游戏的自主 AI

原文地址:Deep Dive into AutoGPT: The Autonomous AI Revolutionizing the Game 2023 年 4 月 24 日 AutoGPT 是一个功能强大的工具,它通过 API 使用 GPT-4 和 GPT-3.5,通过将项目分解为子任务并在自动循环中使用互联网和其他工具来创建完…

Android自定义横向滑动菜单的实现

本文讲述了Android自定义横向滑动菜单的实现。分享给大家供大家参考,具体如下: 前言 开发安卓过程中,经常会用到标题栏的样式,有时候传统方式不能满足开发者的需要,这时候就需要自定义控件来实现。(注意&…

【MySQL 系列】MySQL 架构篇

在我们开始了解 MySQL 核心功能之前,首先我们需要站在一个全局的视角,来看 SQL 是如何运作执行的。通过这种方式,我们可以在头脑中构建出一幅 MySQL 各组件之间的协同工作方式,有助于我们加深对 MySQL 服务器的理解。 文章目录 1、…

【Memory协议栈】NVRAM Manager 模块介绍

目录​​​​​​​ 前言 正文 1.功能简介 2.关键概念 3.功能详解 3.1 内存硬件抽象层Ea/Fee的寻址方案 3.2 基本存储对象Basic storage objects 3.2.1 NV Block 3.2.2 RAM Block 3.2.3 ROM Block 3.2.4 Administrative block 3.2.5 NV Block Header 3.3块管理类型…

Django高级之-cookie-session-token

Django高级之-cookie-session-token 发展史 1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请…