#filter("处理逻辑","可迭代对象") 把可迭代对象依次处理逻辑处理,如果值为真就返回值,值为假就不返回;
li = ['testA','yerA','pp'] print(list(filter(lambda x:x.endswith('A'),li))) #['testa', 'yera']
#自己写函数实现map函数过程:
li = [1,2,3,4,5,6] #假如需要把li内容全部加1操作
def map_test(func,array):
ret = []
for i in array:
res = func(i) #func = lambda x:x+1 ; func(i)就是执行lambda函数 并把i的值传给lambda处理
ret.append(res)
return ret result = map_test(lambda x:x+1,li)
print(result) #map函数使用
# map("处理逻辑","可迭代对象") 把可迭代对象依次for循环传值给lambda处理
print(map(lambda x:x+1,li)) #<map object at 0x050A8310>生成一个可迭代对象
map_ret = list(map(lambda x:x+1,li)) #用list处理成列表
print(map_ret) #[2, 3, 4, 5, 6, 7] #map函数不是必须要用lambda函数来处理逻辑;也可以用自己定义的逻辑来处理
def add(x):
return x**2
s = list(map(add,li)) #这里面add是自己的定义的处理逻辑
print(s) #[1, 4, 9, 16, 25, 36]
#python 2 reduce可以直接用
#python 3 from functools import reduce from functools import reduce def map_reduce(x,init=None):
if init:
ret = init
else:
ret = x.pop(0)
for i in x:
ret = i + ret
return ret
li = [1,2,3,10]
s = map_reduce(li)
print(s) #reduce(function, sequence[, initial]) -> value 采用两参数累积到一序列的项的功能
#将两个参数的函数累积到序列的项上,从左到右,以便将序列减少到单个值。例如,减少(lambda x,y:x + y,[1、2、3、4、5))计算((((1 + 2)+(3)+ 4)+ 5)。
# 如果初始存在,则将其放置在计算序列的项之前,当序列为空时作为默认值。
print(reduce(lambda x,y:x+y,li)) #处理流程是把列表中的1赋值给x,把列表中的2赋值给y,第一的结果是 x = 1 + y=2,第二次计算x = 3 + y=3 依次类推
print(reduce(lambda x,y:x+y,li,10)) #处理流程是把初始值10赋值给x,把列表中的1赋值给y,第一的结果是 x = 11 + y=2,第二次计算x = 13 + y=3 依次类推

总结:

#map遍历序列中的每个元素,得到的结果是一个""列表"",列表的个数以及位置与原来的一样.

#filter遍历序列中的每个元素,判断每个元素得到的布尔值,如果是Trun就保留,不然就丢弃.

#reduce处理一个序列,然后把序列进行合并操作

filter map reduce函数的使用的更多相关文章

  1. Python2.7学习笔记-定义函数、filter/map/reduce/lambda

    我把写的代码直接贴在下面了,注释的不是很仔细,主要是为了自己复习时方便查找,并不适合没有接触过python的人看,其实我也是初学者. #定义函数 def my_abs(x): if x>=0: ...

  2. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

  3. Python之匿名函数(filter,map,reduce)

    参考博客:Python匿名函数详解--http://blog.csdn.net/csdnstudent/article/details/40112803 Python内建函数之——filter,map ...

  4. Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

    Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是 ...

  5. 高阶函数 filter map reduce

    const app=new Vue({ el:'#app', data:{ books:[{ id:1, name:"算法导论", data: '2006-1', price:39 ...

  6. Python内置函数之filter map reduce

    Python内置函数之filter map reduce 2013-06-04 Posted by yeho Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对 ...

  7. filter,map,reduce,lambda(python3)

    1.filter filter(function,sequence) 对sequence中的item依次执行function(item),将执行的结果为True(符合函数判断)的item组成一个lis ...

  8. lambda,filter,map,reduce

    # lambda,filter,map,reduce from functools import reduce print('返回一个迭代器') print((x) for x in range(5) ...

  9. paip.提升效率---filter map reduce 的java 函数式编程实现

    #paip.提升效率---filter map reduce 的java 函数式编程实现 ======================================================= ...

随机推荐

  1. [蓝桥杯ALGO-53.算法训练_最小乘积(基本型)

    问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为: -5和- 那么对应乘积取和的最小值应为: (-) ...

  2. Android Studio 增加函数注释模板

    此篇文章主要介绍如何在Android Studio中函数如何添加注释,使其和eclipse一样方便的添加注释 Android Studio默认函数注释为 /** * */ 下面方法将要改为如下格式 / ...

  3. Hadoop概念学习系列之搭建(windows)Eclipse/MyEclipse远程操作(Linux上)hadoop2.2.0/hadoop2.6.0 出错集(三十五)

    本博文,是在http://blog.csdn.net/u010911997/article/details/44099165  的基础上.感谢原博主! 问题1:在DFS Lcation 上不能多文件进 ...

  4. [Easyui - Grid]为easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列

    为easyui的datagrid.treegrid增加表头菜单,用于显示或隐藏列 /** * @author 孙宇 * * @requires jQuery,EasyUI * * 为datagrid. ...

  5. PAT 乙级 1046 划拳(15) C++版

    1046. 划拳(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 划拳是古老中国酒文化的一个有趣的组成部分 ...

  6. MyBatis 手动映射结果集

    MyBatis可以自动将查询结果封装到bean中,前提条件是bean的属性名和查询的结果列名相同,就会一次对应存储. 如果查询结果的列名和bean的属性名不一致,则需要手动映射结果集 <!-- ...

  7. 3d图像坐标轴及css3属性的讲解

    3d立体坐标轴 如有不知道各种插件的怎么办? 网上查,百度 1.css选择器: 1.id 2.class 3.标签 4.子代 5.后代 6.交集 7.并级 8.通配符 9.结构 10.伪类 11.属性 ...

  8. 详解http和https的作用与区别

    PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密.防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名.另外是加密,加密需要一个密钥交换算法, ...

  9. [UE4]子控件Child Widget顶层容器选择

    如果父级容器是Canvas,则可以直接设置尺寸.放到其他widget的时候也会保持设定好的尺寸(而不管父容器是什么类型).

  10. Visual Ribbon Editor for CRM 连接