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 06 Python
Python中 Lambda表达式全面解析
Nov 28 Python
Python中enumerate函数代码解析
Oct 31 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
python3的数据类型及数据类型转换实例详解
Aug 20 Python
python os.path.isfile 的使用误区详解
Nov 29 Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
python rsa-oaep加密的示例代码
Sep 23 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
php中cookie的使用方法
2014/03/29 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
图片之间的切换
2006/06/26 Javascript
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
JavaScript 题型问答有答案参考
2010/02/17 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
python使用cookielib库示例分享
2014/03/03 Python
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
python中实现控制小数点位数的方法
2019/01/24 Python
python之mock模块基本使用方法详解
2019/06/27 Python
python分布式计算dispy的使用详解
2019/12/22 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
Python Pygame实现俄罗斯方块
2021/02/19 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
Java的基础面试题附答案
2016/01/10 面试题
汇科协同Java笔试题
2012/03/31 面试题
廉洁校园实施方案
2014/05/25 职场文书
毕业生对母校寄语
2015/02/26 职场文书
消防演习通知
2015/04/25 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
Java后台生成图片的完整步骤
2021/08/04 Java/Android
Golang连接并操作MySQL
2022/04/14 MySQL