Python 过滤函数filter()详解

news2024/11/27 10:13:59

一、过滤函数定义

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

二、 过滤函数语法

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 False
    else:
      return True

strings = ['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 True
    else:
        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 True
    else:
        return False

def 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.coloradmin.cn/o/1493923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware安装Ubuntu(保姆级)

VMware安装Ubuntu(保姆级) 文章目录 VMware安装Ubuntu(保姆级)一、镜像下载二、开始安装①:创建一个新的虚拟机②:开始安装③:安装 ssh 服务 提示:以下是本篇文章正文内容&#xff0…

第1题:两数之和

题目内容: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。…

“比特币刚破6.9万又套牢”?超31万人爆仓11.5亿美元!后市将如何发展?

时隔846天(2021年11月10日)之久,比特币终于在昨晚最高触及69080美元,再度创下历史新高,引发社群一片感慨:比特币再不亏欠任何人! 怎料,比特币刚站上历史高点就急速下挫,一…

Linux基础——进程控制

1. 进程创建 在这之前我们曾了解过进程创建(详见进程初识(二)),我们在这里对fork函数做一些补充 其实对于父子进程来说,若是有一方试图修改数据时,会向物理内存中申请一份新空间,并…

list链表的创建,排序,插入, test ok

1. 链表的建立&#xff0c;打印 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stack> #include <iostream> #include <string.h> #include <string>using namespace std;struct node {int data;s…

让运维无忧,实战解析巡检报告功能实现方案

随着大数据技术的演进和信息安全性需求的提升&#xff0c;数据规模的持续扩张为数据运维工作带来了严峻考验。面对海量数据所形成的繁重管理压力&#xff0c;运维人员面临效率瓶颈&#xff0c;而不断攀升的人力成本也使得单纯依赖扩充运维团队来解决问题变得不再实际可行。 由…

双体系Java学习之全路线图

Java路线图 此路线图是为了我以后的Java学习指明方向。 希望大家都能在Java的路线上越走越远&#xff01;努力学习&#xff01;&#xff01;

自动驾驶革命:解密端到端背后的数据、算力和AI奇迹

作者 |毫末智行数据智能科学家 贺翔 编辑 |祥威 最近&#xff0c;特斯拉FSD V12的发布引发了业界对端到端自动驾驶的热议&#xff0c;业界纷纷猜测FSD V12的强大能力是如何训练出来的。从马斯克的测试视频可以大致归纳一下FSD V12系统的一些核心特征&#xff1a; 训练数据&am…

FreeRTOS操作系统学习——空闲任务及其钩子函数

空闲任务 当 FreeRTOS 的调度器启动以后就会自动的创建一个空闲任务&#xff0c;这样就可以确保至少有一任务可以运行。但是这个空闲任务使用最低优先级&#xff0c;如果应用中有其他高优先级任务处于就绪态的话这个空闲任务就不会跟高优先级的任务抢占 CPU 资源。空闲任务还有…

图机器学习(1)--导论

0 CS224W概况 斯坦福大学CS224W课程&#xff1a;http://cs224w.stanford.edu/ 图机器学习的库&#xff1a; 为什么是图&#xff1f;图是描述和分析具有关系/交互的实体的通用语言。 1 图数据举例 复杂域具有丰富的关系结构&#xff0c;可以表示为关系图。 通过显式地建模关…

比瓴科技强势领跑软件开发安全领域,ASPM名列赛道第一

近日&#xff0c;斯元商业咨询正式发布2024首版「网安新兴赛道厂商速查指南&#xff5c;短名单精选」。比瓴科技入围七个赛道&#xff0c;其中ASPM、ASOC、SDL位居赛道第一。 应用安全态势管理&#xff08;ASPM&#xff09; 降低应用安全漏洞及数据泄露风险 比瓴在软件安全领…

seliunx 基础规则介绍

一 SELinux的状态 enforcing&#xff1a;强制&#xff0c;每个受限的进程都必然受限 permissive&#xff1a;允许&#xff0c;每个受限的进程违规操作不会被禁止&#xff0c;但会被记录于审计日志 disabled&#xff1a;禁用 二 相关命令 getenforce: 获取selinux当前状…

SDWAN专线,解决银行网络搭建痛点

金融行业的不断发展和数字化转型&#xff0c;银行网络的搭建和管理面临着诸多挑战和痛点。SD-WAN&#xff08;Software-Defined Wide Area Network&#xff0c;软件定义广域网&#xff09;专线作为一种创新的网络解决方案&#xff0c;为银行解决了诸多网络搭建痛点&#xff0c;…

Hadoop集群配置与管理指南

目录 前言一、Hadoop集群配置历史服务器二、配置日志的聚集三、集群启动/停止方式总结四、编写Hadoop集群常用脚本五、常用端口号说明最后 前言 这篇文章内容覆盖了Hadoop集群中一些重要且常用的配置和管理任务。首先&#xff0c;我们将介绍如何配置Hadoop集群的历史服务器&am…

基于ceph-deploy部署Ceph 集群

Ceph分布式存储一、存储基础1、单机存储设备1.1 单机存储的问题 2、分布式存储(软件定义的存储SDS)2.1 分布式存储的类型 二、Ceph简介1、Ceph优势2、Ceph架构3、Ceph 核心组件4、OSD 存储后端5、Ceph 数据的存储过程6、Ceph 版本发行生命周期 三、Ceph 集群部署1、 基于 ceph-…

java: No enum constant javax.lang.model.element.Modifier.SEALED报错

这里我的idea版本为2021.03&#xff0c;JDK版本为21.0.2。经过大量冲浪后大多数都是让修改JDK版本&#xff0c;原因是Modifier.SEALED是JDK15新增的&#xff0c;但是当我修改完JDK版本后并无卵用。 尝试在代码中声明&#xff0c;也没问题可以引用到&#xff0c;这就怪了&#…

AI付费课程水分大 网红博主李一舟卖课被下架

日前&#xff0c;OpenAI旗下的文生视频模型Sora爆火&#xff0c;网上的AI付费课程嗅到商机&#xff0c;开始上线大量相关教学视频&#xff0c;几元至百元就号称能从入门小白到大神&#xff0c;其中就包括自称清华博士的李一舟。不过&#xff0c;李一舟很快就翻车了&#xff0c;…

6个免费可商用的高清图片素材网站,建议收藏!

作为设计师或者是自媒体创作者&#xff0c;都需要寻找高质量的图片素材为作品增添色彩&#xff0c;但随意找的图片素材很容易侵权。为了让大家能找到免费又能商用的图片素材&#xff0c;这期分享我经常用的6个图片素材网站&#xff0c;免费下载还能商用&#xff0c;赶紧收藏起来…

【产品经理方法论——产品的基本概念】

1. 产品学三元素 产品学有三个元素&#xff1a;用户、需求、产品 产品学的内容&#xff1a;根据用户的需求设计产品&#xff0c;使用产品服务用户 仅仅通过三个元素无法说明每个元素的概念&#xff0c;因为三个元素互为说明关系。 通过引入人/群体来说明三个元素的关系。 需…

腾讯云最新活动_腾讯云促销优惠_代金券-腾讯云官网入口

腾讯云服务器多少钱一年&#xff1f;62元一年起&#xff0c;2核2G3M配置&#xff0c;腾讯云2核4G5M轻量应用服务器218元一年、756元3年&#xff0c;4核16G12M服务器32元1个月、312元一年&#xff0c;8核32G22M服务器115元1个月、345元3个月&#xff0c;腾讯云服务器网txyfwq.co…