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实现字典的遍历与排序功能示例
Dec 23 Python
Python发送http请求解析返回json的实例
Mar 26 Python
python实现音乐下载器
Apr 15 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
Numpy之文件存取的示例代码
Aug 03 Python
Django自定义用户登录认证示例代码
Jun 30 Python
python Django的web开发实例(入门)
Jul 31 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
Python通过cv2读取多个USB摄像头
Aug 28 Python
用 python 进行微信好友信息分析
Nov 28 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
php中使用GD库做验证码
2016/03/31 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
详解Python用户登录接口的方法
2019/04/17 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
实习自我评价怎么写
2013/12/02 职场文书
银行学习十八大感想
2014/01/11 职场文书
小学美术教学反思
2014/02/01 职场文书
致接力运动员广播稿
2014/02/17 职场文书
给客户的检讨书
2014/12/21 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
Vue3.0 手写放大镜效果
2021/07/25 Vue.js
MySQL数据库查询之多表查询总结
2022/08/05 MySQL