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抓取京东价格分析京东商品价格走势
Jan 09 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
Jun 07 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
python 输出所有大小写字母的方法
Jan 02 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
Python之修改图片像素值的方法
Jul 03 Python
python twilio模块实现发送手机短信功能
Aug 02 Python
Python JSON常用编解码方法代码实例
Sep 05 Python
Python保存并浏览用户的历史记录
Apr 29 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
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
JavaScript进制转换实现方法解析
2020/01/18 Javascript
python输出指定月份日历的方法
2015/04/23 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
python3对接mysql数据库实例详解
2019/04/30 Python
python时间日期操作方法实例小结
2020/02/06 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
蛋白质世界:Protein World
2017/11/23 全球购物
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
网络专业学生个人的自我评价
2013/12/16 职场文书
趣味运动会活动方案
2014/02/12 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
文明单位申报材料
2014/12/23 职场文书
展览会邀请函
2015/02/02 职场文书
导游词之山东孔庙
2019/11/04 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android
Pandas数据结构之Series的使用
2022/03/31 Python
element tree树形组件回显数据问题解决
2022/08/14 Javascript