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 Django做网页
Nov 04 Python
python文件操作整理汇总
Oct 21 Python
用Python实现KNN分类算法
Dec 22 Python
Python 实现异步调用函数的示例讲解
Oct 14 Python
python3 map函数和filter函数详解
Aug 26 Python
wxPython之wx.DC绘制形状
Nov 19 Python
python中count函数简单用法
Jan 05 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
使用Python封装excel操作指南
Jan 29 Python
使用pipenv管理python虚拟环境的全过程
Sep 25 Python
Python字符串常规操作小结
Apr 03 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对象Object的概念 介绍
2012/06/14 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
jQuery extend 的简单实例
2013/09/18 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
python设置windows桌面壁纸的实现代码
2013/01/28 Python
Python面向对象特殊成员
2017/04/24 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
Python容器类型公共方法总结
2020/08/19 Python
python实现图片素描效果
2020/09/26 Python
JAVA代码查错题
2014/10/10 面试题
餐厅总经理岗位职责
2013/12/31 职场文书
大学毕业生通用自我评价
2014/01/05 职场文书
信访稳定工作汇报
2014/10/27 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python