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命令行传递实例化对象的方法
Nov 02 Python
python正则表达式及使用正则表达式的例子
Jan 22 Python
tensorflow实现加载mnist数据集
Sep 08 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
python实现车牌识别的示例代码
Aug 05 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
python实现输入任意一个大写字母生成金字塔的示例
Oct 27 Python
python实现用户名密码校验
Mar 18 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
基于Python实现全自动下载抖音视频
Nov 06 Python
python如何实现递归转非递归
Feb 25 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查询搜索引擎排名位置的代码
2010/01/05 PHP
php产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
python算法学习之计数排序实例
2013/12/18 Python
python使用any判断一个对象是否为空的方法
2014/11/19 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
python函数与方法的区别总结
2019/06/23 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
移动通信行业实习自我鉴定
2013/09/28 职场文书
学习新党章思想汇报
2014/01/09 职场文书
中国文明网签名寄语
2014/01/18 职场文书
数学检讨书1000字
2014/02/24 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
思想道德自我评价2015
2015/03/09 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
python元组打包和解包过程详解
2021/08/02 Python
mysql数据库实现设置字段长度
2022/06/10 MySQL
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle