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 01 Python
python调用百度语音识别api
Aug 30 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
python安装本地whl的实例步骤
Oct 12 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
python接口自动化如何封装获取常量的类
Dec 24 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
Python设计密码强度校验程序
Jul 30 Python
python 管理系统实现mysql交互的示例代码
Dec 06 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获取指定数量随机字符串的方法
2017/02/06 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
PHP之header函数详解
2021/03/02 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
Vue.js用法详解
2017/11/13 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
Python数据结构之Array用法实例
2014/10/09 Python
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python 装饰器使用详解
2017/07/29 Python
TensorFlow的权值更新方法
2018/06/14 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
班级出游活动计划书
2014/08/15 职场文书
学前教育专业求职信
2014/09/02 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
Go 内联优化让程序员爱不释手
2022/06/21 Golang