filter, mmap, reduce

转载 2016年08月30日 18:22:04

Python内置了一些特殊函数,这些函数很具python特性。可以让代码更加简洁。

可以看例子:

filter(function, sequence)

str = ['a', 'b','c', 'd']

def fun1(s): return s if s != 'a' else None

ret = filter(fun1, str)

print ret

## ['b', 'c', 'd']

对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回。

可以看作是过滤函数。

 2 map(function, sequence) 

str = ['a', 'b','c', 'd'] 

def fun2(s): return s + ".txt"

ret = map(fun2, str)

print ret

## ['a.txt', 'b.txt', 'c.txt', 'd.txt']

对sequence中的item依次执行function(item),见执行结果组成一个List返回:

map也支持多个sequence,这就要求function也支持相应数量的参数输入:
def add(x, y): return x+y 
 print map(add, range(10), range(10)) 
##[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]


3 reduce(function, sequence, starting_value):def add1(x,y): return x + y

print reduce(add1, range(1, 100))

print reduce(add1, range(1, 100), 20)

## 4950 (注:1+2+...+99)
## 4970 (注:1+2+...+99+20)

对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和: 


4 lambda

g = lambda s: s + ".fsh"

print g("haha")

print (lambda x: x * 2) (3)

## haha.fsh

## 6

这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似与C语言中的宏,这些叫做lambda的

lambda表达式,结合map、reduce、filter函数

lambda函数是一种快速定义单行最小函数的方法,是从Lisp借鉴而来的,可以用在任何需要函数的地方。基础lambda语句中,冒号前是参数,可以有多个,用逗号分割;冒号右边是返回值。 lambda语...
  • u011402596
  • u011402596
  • 2015年10月07日 16:01
  • 3081

Python3.4中filter函数,map函数和reduce函数

filter函数: filter()为已知的序列的每个元素调用给定的布尔函数,调用中,返回值为非零的元素将被添加至一个列表中 >>> def f1(x): if x > 20: return Tru...
  • damotiansheng
  • damotiansheng
  • 2015年03月08日 22:28
  • 35734

不得不知的python高阶函数(Map、Reduce、Filter)

Map函数 map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。 Reduce函数 reduce把一个函数...
  • u010541307
  • u010541307
  • 2016年11月16日 18:52
  • 2186

swift map,reduce,filter,flatmap

  • 2017年12月06日 17:14
  • 12KB
  • 下载

常用数组Array方法: indexOf、filter、forEach、map、reduce使用实例

ECMAScript5标准发布于2009年12月3日,它带来了一些新的,改善现有的Array数组操作的方法。然而,这些新奇的数组方法并没有真正流行起来的,因为当时市场上缺乏支持ES5的浏览器。 Ar...
  • qq_18832439
  • qq_18832439
  • 2016年05月02日 20:18
  • 1253

Python内置函数之map()、reduce()、filter()函数

一、map() 注意:map()函数不改变原有的 list,而是返回一个新的 list。 利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。 ...
  • Heyfans
  • Heyfans
  • 2018年01月07日 12:43
  • 11

【python】python的内置函数apply()filter() reduce()map()

转载:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=22920230&id=3023915 python提供了内联模块buid...
  • wendysun0504
  • wendysun0504
  • 2015年02月10日 13:44
  • 327

Python学习4:生成器、lamda表达式及map、reduce、filter函数

1. 迭代对象(iterable object) 迭代对象是这样一个对象,它包含有一个next()方法(__next__()方法,在python 3x中), 这个方法的目的是进行到下一个...
  • lengyisheng
  • lengyisheng
  • 2014年01月14日 01:02
  • 2834

Python学习(八)——map、reduce、filter、sorted

map map()函数接收两个参数:一个函数,一个序列;map函数将传入函数依次作用于序列的每个元素,把结果作为新的list返回。>>> map(abs,[-12,-8,2,-9,61,-27]) ...
  • akadiao
  • akadiao
  • 2017年08月02日 20:48
  • 132

Swift高阶函数map,filter,reduce实践

Swift是一门面向协议的语言,在使用Swift时我们已经充分享受到了面向协议编程带给我们的便利,但是Swift相比Obj-C还有一个更重要的优点,那就是对函数式编程提供了很好的支持,其中Swift提...
  • potato512
  • potato512
  • 2016年04月10日 01:07
  • 1527
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:filter, mmap, reduce
举报原因:
原因补充:

(最多只允许输入30个字)