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对两个有序列表进行合并和排序的例子
Jun 13 Python
python中__slots__用法实例
Jun 04 Python
python读取文件名称生成list的方法
Apr 27 Python
破解安装Pycharm的方法
Oct 19 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
python创造虚拟环境方法总结
Mar 04 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
Numpy数组array和矩阵matrix转换方法
Aug 05 Python
python做接口测试的必要性
Nov 20 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
Pytorch中的数据集划分&正则化方法
May 27 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
python数组过滤实现方法
2015/07/27 Python
python构建深度神经网络(DNN)
2018/03/10 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
悬挂训练绳:TRX
2017/12/14 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
高中军训感言800字
2014/03/05 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
最感人的道歉情书
2015/05/12 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技
Golang 并发下的问题定位及解决方案
2022/03/16 Golang