Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108695
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 577
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-16 09:51
个人简介

啄木鸟专吃虫,故名啄木鸟。

分类: Python/Ruby

2014-04-20 11:54:15

1.map(function,seq1,seq2...)->list:根据给定的函数给指定的序列(依据function的参数 给出指定个数的序列)做映射,例如:
>>> map(str,range(10))
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> map(lambda x:x**2,range(5))   #lambda创建短小函数
[0, 1, 4, 9, 16]
>>> map(lambda x,y:x+y,[1,2,3],[4,5,6])  #function函数数量要和集合数量相匹配例如:x,y对应两个集合[1,2,3],[4,5,6]                         [5, 7, 9]                       
>>> map(None,[1,2,3],[4,5,6])  #如果function为None,则返回序列对[(1,4)(2,5)(3,6)],与zip类似。
[(1, 4), (2, 5), (3, 6)]


2.reduce(function or None,seq1,initial)->value:对参数序列中的元素进行积累。function为两个参数的函数,initial为给定的初始值。例如
>>> reduce(lambda x,y:x+y,[1,2,3,4],10)   #reduce实现的功能是从seq中一次取值与上一次function产生的值作为function的参数。
20     #10+1 ->11+2->13+3->16+4=20
在没有设定initial时,就以seq中的第一个和第二个值开始,例如:
>>> reduce(lambda x,y:x+y,[1,2,3,4])
10
>>> reduce(None,[3,2,1])   #reduce函数中function不能为None!
Traceback (most recent call last):
  File "", line 1, in
    reduce(None,[3,2,1])
TypeError: 'NoneType' object is not callable

3.filter(fuction or None,seq)->list,tuple,string    基于一个返回bool值得函数对seq进行过滤,也就是seq中每个元素调用unction,返回为Ture的参数组成list,tuple,string最终返回。
例如:
>>> filter(lambda x:x%2==0,[1,2,3,4])
[2, 4]

def fun(x):return  x%2 = 0
filter(fun,[1,2,3,4]) ->[1,3]#返回的类型与参数类型一致






阅读(654) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~