资讯专栏INFORMATION COLUMN

Python简要解读filter函数用法

89542767 / 433人阅读

  这篇文章与你一起去探寻Python中的filter函数,使你以有限的时间搞清楚这一函数的基本原理。也可以通过碎片化时长夯实这一函数公式,使你在解决操作过程中更有效


  什么事情都是通过量变引起质变的一个过程,学习培训Python也是如此。只有将1个语言表达里的常用函数了然于胸了,才可以在处理事情的过程当中游刃有余,迅速地寻找最佳方案。


  一、filter函数的概念


  filter函数是Python常用的内置函数,启用不用载入库,直接用就可以。它主要是用于依据特殊条件过虑迭代器中不符合要求的原素,回到1个可塑性测算的filter目标或迭代器。必须用list函数开展变换,才能获得合乎的前提条件物质组成的目录。


  其基本上启用词法如下所示:

  filter(functionorNone,iterable)


  function:函数公式,作用是对iterable中的每一个原素确定是否合乎特殊条件。


  None:不启用一切函数公式,仅对可迭代对象中元素自身分辨真伪,保存为真得原素。


  iterables:可迭代对象(编码序列、词典等)。


  二、filter函数案例


  求一个编码序列中小于零的物质组成的编码序列


  我们首先来看一下filter函数不加list的结论,编码如下所示:


  c=[-10,28,9,-5,30,5]
  filter(lambdaa:a>0,c)


  获得结论:


  回到1个可塑性测算的filter目标或迭代器。接下来看下用list函数开展变换会得到什么,编码如下所示:


  c=[-10,28,9,-5,30,5]
  list(filter(lambdaa:a>0,c))

  获得结论:


  [28,9,30,5]


  从结论知,filter函数作用是筛出了编码序列c中高于0的物质组成了新对象或迭代器。根据list函数开展变换,从而获得对符合条件的物质组成的目录。假如有小伙伴对编码中的lambda函数公式不太熟悉,可以参考一下【Python常用函数】这篇文章使你完全把握Python中的lambda函数公式。


  求编码序列中非零数所组成的新编码序列


  在filter函数界定中指出,filter函数中主要参数None表示不启用一切函数公式,仅对可迭代对象中元素自身分辨真伪,保存为真得原素。


  数据测试如下所示:


  #找到编码序列中的非0数
  c2=[4,9,0,-5,-8,7,0]
  list(filter(None,c2))
  获得结论:
  [4,9,-5,-8,7]

  因为0在Python中默认False,非0默认True,因此在挑选的时候对0展开了过虑。


  求词典中高于2的键所组成的新编码序列


  在filter函数界定中指出,它对于可迭代对象予以处理,因此涵盖了目录和词典等目标。第四个练习题都会对目录予以处理,本例看对词典的处理方法。编码如下所示:


  #找到词典中高于2的键
  list(filter(lambdax:x>2,{1:'唐嫣',2:'朱雨玲',3:'樊振东',4:'孙建',5:'刘文'}))

  获得结论:


  [3,4,5]


  从结论知,filter函数对词典予以处理的过程中,挑选对象是词典的键,而非词典数值。


  求100之内不单单是3的倍率又奇数的整数


  最终再来看1个中小学经常遇到的题,求100之内不单单是3的倍率又奇数的整数。编码如下所示:


  #求100之内既奇数又是3的倍率的整数
  importnumpyasnp
  list(filter(lambdax:x%2!=0andx%3==0,np.arange(1,101)))


  获得结论:


  [3,9,15,21,27,33,39,45,51,57,63,69,75,81,87,93,99]


  其中np.arange(1,101))表示1到100公差为1的等差数列。


  x%2!=0表示该数不能整除2,即为奇数。


  x%3==0表示该数能整除3,即为3的倍率。


  可以人工复核一下,发现Python得到的结果是正确的。


  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128842.html

相关文章

  • Python简要解读filter函数用法

      文中与你一起去探寻Python中的filter函数,使你以有限的时间搞清楚这一函数的基本原理。也可以通过碎片化时长夯实这一函数公式,使你在解决操作过程中更有效  什么事情都是通过量变引起质变的一个过程,学习培训Python也是如此。只有将1个语言表达里的常用函数了然于胸了,才可以在处理事情的过程当中游刃有余,迅速地寻找最佳方案。  一、filter函数的概念  filter函数是Python常...

    89542767 评论0 收藏0
  • Python 爬虫面试题 170 道:2019 版

    摘要:下面代码会存在什么问题,如何改进一行代码输出之间的所有偶数。简述进程之间如何通信多路复用的作用模型的区别什么是并发和并行解释什么是异步非阻塞的作用面试题说说你知道的命令如何查看某次提交修改的内容答案扫码下面的二维码订阅即可获取。 引言 最近在刷面试题,所以需要看大量的 Python 相关的面试题,从大量的题目中总结了很多的知识,同时也对一些题目进行拓展了,但是在看了网上的大部分面试题不...

    trigkit4 评论0 收藏0
  • 【underscore 源码解读】Array Functions 相关源码拾遗 & 小结

    摘要:最近开始看源码,并将源码解读放在了我的计划中。将转为数组同时去掉第一个元素之后便可以调用方法总结数组的扩展方法就解读到这里了,相关源码可以参考这部分。放个预告,下一篇会暂缓下,讲下相关的东西,敬请期待。 Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中。 阅读一些著名框架类库的源码,就好...

    SimpleTriangle 评论0 收藏0
  • Python 进阶之路 (五) map, filter, reduce, zip 一网打尽

    摘要:另外,这些中的每一个都是纯函数,有返回值。例如,如果要计算整数列表的累积乘,或者求和等等基础语法参数是连续作用于每一个元素的方法,新的参数为上一次执行的结果,为被过滤的可迭代序列返回值最终的返回结果在中,是一个内置函数。 简洁的内置函数 大家好,我又回来了,今天我想和大家分享的是Python非常重要的几个内置函数:map,filter,reduce, zip。它们都是处理序列的便捷函数...

    ccj659 评论0 收藏0
  • GitChat · 人工智能 | 肿瘤医疗影像 AI 识别技术实践

    摘要:大数据人工智能分析技术使得医学影像诊断软硬件变得更智能化。通过已训练好的卷积神经网络,能很快地搭建并训练自己的深度学习系统。目前,典型的卷积神经网络是一个多层的可训练的体系结构。使用平均值操作的池化层被称之为平均池化层。 来自 GitChat 作者:王晓明更多IT技术分享,尽在微信公众号:GitChat技术杂谈 进入 GitChat 阅读原文 前言 医学影像与人工智能的结合,是数字医疗...

    songjz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<