Python如何用filter函数筛选数据


Posted in Python onMarch 05, 2020

一.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()函数也是将迭代器或者序列中的每一个元素映射到指定的函数中,操作完成之后再返回修改后的迭代器对象;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
基于Python的接口测试框架实例
Nov 04 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
Python实现的简单排列组合算法示例
Jul 04 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
pytorch打印网络结构的实例
Aug 19 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
Python连接Mysql进行增删改查的示例代码
Aug 03 Python
pycharm配置QtDesigner的超详细方法
Jan 25 Python
Python闭包的定义和使用方法
Apr 11 Python
Python API len函数操作过程解析
Mar 05 #Python
Python通过Tesseract库实现文字识别
Mar 05 #Python
Python爬虫实现模拟点击动态页面
Mar 05 #Python
python实现图片横向和纵向拼接
Mar 05 #Python
基于Python生成个性二维码过程详解
Mar 05 #Python
Python callable内置函数原理解析
Mar 05 #Python
python实现图像拼接
Mar 05 #Python
You might like
体育彩票排列三组选三算法分享
2014/03/07 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
jquery 扑捉回车键事件代码
2014/04/24 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
python操作ie登陆土豆网的方法
2015/05/09 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
遇到的Mysql的面试题
2014/06/29 面试题
拉丁舞学习者的自我评价
2013/10/27 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
公司司机岗位职责
2014/02/07 职场文书
暑期培训班策划方案
2014/08/26 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL