Python如何用filter函数筛选数据

作者:猿说python 时间:2022-07-23 21:20:14 

一.filter函数简介

filter函数主要用来筛选数据,过滤掉不符合条件的元素,并返回一个迭代器对象,如果要转换为列表list或者元祖tuple,可以使用内置函数list() 或者内置函数tuple()来转换;

filter函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中,就好比是用筛子,筛选指定的元素;

语法:

filter(function, iterable)

参数:

function – 函数名;

iterable – 序列或者可迭代对象;

返回值:通过function过滤后,将返回True的元素保存在迭代器对象中,最后返回这个迭代器对象(python2.0x版本是直接返回列表list);

二.filter函数使用

1.filter函数简单使用


# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com

@File:python_process_Pool.py
@Time:2020/1/14 21:25

@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
def check(i):
 # 如果是偶数返回 True 否则返回False
 return True if i%2 == 0 else False

if __name__ == "__main__":

list1 =[1,2,3,4,5,6]
 result = filter(check,list1)
 print(result)
 print(type(result))

# 将返回的迭代器转为列表list或者元组
 print(list(result))
 print(type(list(result)))

输出结果:

<filter object at 0x0000015127BA7EB8>
<class 'filter'>
[2, 4, 6]
<class 'list'>

2.filter函数配合匿名函数Lambda使用


def check_score(score):
 if score > 60:
   return True
 else:
   return False

if __name__ == "__main__":

# 成绩列表
 student_score = {"zhangsan":98,"lisi":58,"wangwu":67,"laowang":99,"xiaoxia":57}

# 筛选成绩大于60的成绩列表
 result = filter(lambda score:score > 60,student_score.values())
 # 与上面一行代码等价
 # result = filter(check_score, student_score.values())

print(result)
 print(type(result))

# 将返回的迭代器转为列表list或者元组
 print(list(result))
 print(type(list(result)))

输出结果:

<filter object at 0x000001B761F88FD0>
<class 'filter'>
[98, 67, 99]
<class 'list'>

注意:filter函数返回的是一个迭代器对象,往往在使用时需要先将其转换为列表list或者元祖tuple之后再操作;

python filter函数其实和内置函数map()使用方法类似,map()函数也是将迭代器或者序列中的每一个元素映射到指定的函数中,操作完成之后再返回修改后的迭代器对象;

来源:https://www.cnblogs.com/shuopython/p/12359080.html

标签:Python,filter,函数
0
投稿

猜你喜欢

  • SQL游标原理和使用方法

    2008-12-22 10:50:00
  • Python字典查找数据的5个基础操作方法

    2021-09-08 23:19:45
  • SQL Server连接中三个常见的错误分析

    2024-01-14 21:30:23
  • Python with关键字,上下文管理器,@contextmanager文件操作示例

    2022-06-22 05:33:12
  • 详解Go程序添加远程调用tcpdump功能

    2024-05-21 10:18:45
  • python 偷懒技巧——使用 keyboard 录制键盘事件

    2023-02-08 18:00:03
  • GO接收GET/POST参数及发送GET/POST请求的实例详解

    2024-02-08 10:27:49
  • python利用MethodType绑定方法到类示例代码

    2023-08-23 08:07:31
  • Vue开发环境跨域访问问题

    2023-07-02 17:07:34
  • Python制作简易注册登录系统

    2022-08-25 14:46:28
  • Python实现PDF转换文本详解

    2022-09-04 13:40:52
  • Django配置文件代码说明

    2023-02-13 05:40:13
  • 浅谈Python的字典键名可以是哪些类型

    2021-06-13 11:39:47
  • 详解python ThreadPoolExecutor异常捕获

    2023-08-09 12:54:30
  • javascript页面上使用动态时间具体实现

    2024-05-11 09:36:06
  • 使用BootStrap实现用户登录界面UI

    2023-07-02 05:19:51
  • python做翻译软件详解,小白也看得明白

    2023-08-08 06:25:44
  • 2022最新版MySQL 8.0.30 安装及配置教程(小白入门)

    2024-01-28 16:49:49
  • PyTorch中model.zero_grad()和optimizer.zero_grad()用法

    2023-09-15 20:13:57
  • Oracle不同数据库间对比分析脚本

    2010-07-26 13:24:00
  • asp之家 网络编程 m.aspxhome.com