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 域名分析工具实现代码
Jul 15 Python
Python中的并发编程实例
Jul 07 Python
python更新列表的方法
Jul 28 Python
Python正则抓取网易新闻的方法示例
Apr 21 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
python内存动态分配过程详解
Jul 15 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
python函数map()和partial()的知识点总结
May 26 Python
Python2手动安装更新pip过程实例解析
Jul 16 Python
python中selenium库的基本使用详解
Jul 31 Python
python自动化调用百度api解决验证码
Apr 13 Python
教你使用pyinstaller打包Python教程
May 27 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
PHP 数组遍历顺序理解
2009/09/09 PHP
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
Python获取脚本所在目录的正确方法
2014/04/15 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
python的turtle库使用详解
2019/05/10 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
计算机专业个人简短的自我评价
2013/10/23 职场文书
教师自荐信范文
2013/12/09 职场文书
建筑经济管理专业求职信分享
2014/01/06 职场文书
试用期员工考核制度
2014/01/22 职场文书
大学生交通专业求职信
2014/09/01 职场文书
群众路线个人整改方案
2014/10/25 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
门店店长岗位职责
2015/04/14 职场文书
管理失职检讨书
2015/05/05 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL