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之赋值,简单也不简单
Sep 24 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
itchat接口使用示例
Oct 23 Python
图解Python变量与赋值
Apr 03 Python
用 Python 连接 MySQL 的几种方式详解
Apr 04 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
Python如何使用Gitlab API实现批量的合并分支
Nov 27 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
在python中利用pycharm自定义代码块教程(三步搞定)
Apr 15 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 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
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
List Installed Software Features
2007/06/11 Javascript
select组合框option的捕捉实例代码
2008/09/30 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
详解python的四种内置数据结构
2019/03/19 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
pycharm安装及如何导入numpy
2020/04/03 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
计算s=f(f(-1.4))的值
2014/05/06 面试题
学校岗位设置方案
2014/01/16 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
教师节寄语2015
2015/03/23 职场文书
超市采购员岗位职责
2015/04/07 职场文书
家长会开场白和结束语
2015/05/29 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python