一、filter()

在Python内建函数中,有一个和map()函数用法类似、却可以用来过滤元素的迭代函数,这个函数就是filter()。它的函数原型是:filter(function,itearable)

filter返回的是一个filter对象,可以通过list()或者for循环取出内容。 注意:传入的函数返回值必须是布尔类型。若是真则保留元素,假则过滤掉这元素

def is_even(x):return x%2==0
a=filter(is_even,[1,2,3,4,5,6])
print(a)
#<filter object at 0x017FCF30>
print(list(a))
#[2, 4, 6]

下面在举个例子,体会一下发filter()的的用法。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#过滤列表中的元素def is_empty(s):return s.strip()!=''
print(list(filter(is_empty,['','\n','\t','aa'])))  #['aa']

二、reduce()

reduce()函数原型是reduce(function,sequence),它的作用是用function对序列进行累积操作。它返回值可以直接输出,不像map和filter返回的是一个迭代对象,还得去转化。

所谓的累计操作就是就是第 1、2 个元素用 function 函数运算,得到的结果再与第三个数据用 function 函数运算,然后得到的结果再与第四个进行运算,一次类推。

下面通过一个具体的例子来说明所谓的累计操作是怎么样的。

注:reduce函数是存放再functiontools模块中的,使用前要导入

#函数功能是实现阶乘
from functools import reduce  #导入reduce
print(reduce(lambda x,y:x*y,[1,2,3,4])
#输出是24

整个过程如下:
1、操作第1,2个元素,即1 * 2 得到2
2、操作1的结果和第3个元素,即 2 * 3 得到6
3、操做2的结果和第4个元素,即 6 * 4 得到24
4、返回24

python filter()和reduce()函数用法详解相关推荐

  1. python中reduce()函数用法详解

    reduce()源码: def reduce(function, sequence, initial=None): # real signature unknown; restored from __ ...

  2. python lambda函数-Python的Lambda函数用法详解

    在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要 ...

  3. python中mat函数_Python中flatten( )函数及函数用法详解

    flatten()函数用法 flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组. flatten只能适用于numpy对象,即array或者mat,普通的list列 ...

  4. python中import re_Python3中正则模块re.compile、re.match及re.search函数用法详解

    本文实例讲述了Python3中正则模块re.compile.re.match及re.search函数用法.分享给大家供大家参考,具体如下: re模块 re.compile.re.match. re.s ...

  5. python count函数代码_python count函数用法详解_后端开发

    fgetc函数的作用详解_后端开发 fgetc函数的作用是从指定文件读入一个字符,要求文件的打开方式必须是以读或读写的方式或者追加的方 式,只写方式是不能读的. 在python中可以使用"c ...

  6. Python setattr()、getattr()、hasattr()函数用法详解

    Python setattr().getattr().hasattr()函数用法详解 除了前面介绍的几个类中的特殊方法外,本节再介绍 3 个常用的函数,分别是 hasattr().getattr() ...

  7. python中isinstance怎么用_pythonisinstance函数用法详解

    这篇文章主要介绍了python isinstance函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 isinstance() 函数来判断 ...

  8. python explode_pandas dataframe 中的explode函数用法详解

    在使用 pandas 进行数据分析的过程中,我们常常会遇到将一行数据展开成多行的需求,多么希望能有一个类似于 hive sql 中的 explode 函数. 这个函数如下: Code # !/usr/ ...

  9. python中setattr()函数用法详解

    setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的. getattr()用法详见博文:python中getattr()函数用法详解_IT之一小佬的博客-CSDN ...

最新文章

  1. firewalld的9个zone、firewalld关于zone和service的操作
  2. 01H5-fe-html5-005插入音频
  3. 【GDOI2016模拟3.11】历史
  4. 消除软硬件鸿沟,芯客网完美支持智能硬件在移动互联时代的爆发
  5. 【转载】ShowWindow函数
  6. 【转】DICOM:DICOM Print服务中PresentationContext协商之 MetaSOPClass与SOPClass对比分析!!!!!!!!
  7. 明天起100亿消费券来袭,请作好准备!
  8. Maven命令安装本地jar包到本地仓库
  9. C++函数free和delete如何操作指针?
  10. Python 3 进阶 —— print 打印和输出
  11. python经典程序实例-你不知道的Python语言的经典五大案例
  12. [Java][Android][Process] Process 创建+控制+分析 经验浅谈
  13. 在线直播网站源码开发,音视频同步的处理方案及选择
  14. 用户流失数据分析报告
  15. error: passing as ‘this‘ argument discards qualifiers [-fpermissive]
  16. Git删除历史记录(已提交)中的大文件
  17. 省市区areacode反查的精简写法
  18. 电大形考作业c语言答案,题目精编国家开放大学电大《管理信息系统》形考网络课作业1-4试题及答案...
  19. scp 是我小看了你---基于密钥传输!
  20. GoodSync(最好的文件同步软件)

热门文章

  1. LZW算法PHP实现方法 lzw_decompress php
  2. error: 'for' loop initial declarations are only allowed in C99 or C11 mode
  3. 微软面试题及答案 (很需要开放性思维啊)
  4. pku 2195 Going Home 最小费最大流问题
  5. 25个出众的Web表单范例
  6. 医学院计算机社发展,医学院计算机教学创新思路.docx
  7. 380v pcb 接线端子_插拔式PCB接线端子选型参考
  8. 【ABAP】ALV可编辑数据更新
  9. oracle 用户总是 频繁的被锁定 的解决办法
  10. 钢材种类有哪些?怎么分类