python中的map、reduce、filter用法
2015-01-23 11:11
423 查看
map函数
map函数的定义:map(function, sequence[, sequence, ...]) -> list
通过定义可以看到,这个函数的第一个参数是一个函数,剩下的参数是一个或多个序列,返回值是一个集合。
function可以理解为是一个一对一或多对一函数,map的作用是以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的list。
代码示例:
>>> def add(x):
return x+10
>>> hh=[0,1,2]
>>> map(add, hh)
[10, 11, 12]
>>> def abc(a,b,c):
return a*100+b*10+c
>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> list3 = [7,8,9]
>>> map(abc,list1,list2,list3)
[147, 258, 369]
如果传入的函数是None时
>>> map(None,list1,list2,list3)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
reduce函数
reduce函数会对参数序列中元素进行累积。
reduce函数的定义:reduce(function, sequence[, initial]) -> value
function参数是一个有两个参数的函数。reduce依次从sequence中取一个元素,和上一次调用function的结果作为参数,再次调用function。
第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence中的前两个元素做参数调用function。
代码示例:
>>> reduce(lambda x, y: x + y, [2, 3, 4, 5], 1)
15 ((((1+2)+3)+4)+5)
>>> reduce(lambda x, y: x + y, [2, 3, 4, 5])
14
filter函数
filter函数会对指定序列执行过滤操作。
filter函数的定义:filter(function or None, sequence) -> list, tuple, or string
function是一个谓词函数,接受一个参数,返回布尔值True或False。
filter函数会对序列参数sequence中的每个元素调用function函数,最后返回的结果是调用后为True的元素。
返回值的类型和参数sequence的类型相同
>>> def is_even(x):
return x%2==0
>>> filter(is_even, [1, 2, 3, 4, 5, 6])
[2, 4, 6]
>>> filter(is_even, (1, 2, 3, 4, 5, 6))
(2, 4, 6)
简化写法,可以写成filter(lambda x : x%2 == 0, [1, 2, 3, 4, 5, 6])
map函数的定义:map(function, sequence[, sequence, ...]) -> list
通过定义可以看到,这个函数的第一个参数是一个函数,剩下的参数是一个或多个序列,返回值是一个集合。
function可以理解为是一个一对一或多对一函数,map的作用是以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的list。
代码示例:
>>> def add(x):
return x+10
>>> hh=[0,1,2]
>>> map(add, hh)
[10, 11, 12]
>>> def abc(a,b,c):
return a*100+b*10+c
>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> list3 = [7,8,9]
>>> map(abc,list1,list2,list3)
[147, 258, 369]
如果传入的函数是None时
>>> map(None,list1,list2,list3)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
reduce函数
reduce函数会对参数序列中元素进行累积。
reduce函数的定义:reduce(function, sequence[, initial]) -> value
function参数是一个有两个参数的函数。reduce依次从sequence中取一个元素,和上一次调用function的结果作为参数,再次调用function。
第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence中的前两个元素做参数调用function。
代码示例:
>>> reduce(lambda x, y: x + y, [2, 3, 4, 5], 1)
15 ((((1+2)+3)+4)+5)
>>> reduce(lambda x, y: x + y, [2, 3, 4, 5])
14
filter函数
filter函数会对指定序列执行过滤操作。
filter函数的定义:filter(function or None, sequence) -> list, tuple, or string
function是一个谓词函数,接受一个参数,返回布尔值True或False。
filter函数会对序列参数sequence中的每个元素调用function函数,最后返回的结果是调用后为True的元素。
返回值的类型和参数sequence的类型相同
>>> def is_even(x):
return x%2==0
>>> filter(is_even, [1, 2, 3, 4, 5, 6])
[2, 4, 6]
>>> filter(is_even, (1, 2, 3, 4, 5, 6))
(2, 4, 6)
简化写法,可以写成filter(lambda x : x%2 == 0, [1, 2, 3, 4, 5, 6])
相关文章推荐
- Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
- 【Python】Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
- Python学习笔记(5):lambda,filter,map,reduce,zip用法整理
- Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
- Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
- Python中filter、map、reduce、lambda 的用法
- Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
- 关于python中,map,reduce,filter,sorted函数的用法
- Python的map/filter/reduce常见用法例举
- python 的map,reduce,filter的用法
- Python特殊用法[map、reduce、filter、lambda、列表推导式等]
- python基础===map, reduce, filter的用法
- 关于python中,map,reduce,filter,sort函数的用法:
- Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
- python的map,reduce,filter用法举例
- python filter/map/reduce的用法
- Python中filter、map、reduce、lambda 的用法
- python之lambda、filter、map、reduce的用法说明
- python 的几个内置函数(lambda ,zip, filter, map, reduce )用法
- python 的几个内置函数(lambda ,zip, filter, map, reduce )用法