python中zip,map,filter用法

zip:把两个按照引索index数组合并成一个新数组,并返回一个数组列表(取决于最短的数组)

例如:

>>> a=('1','2','3','4')
>>> b=('a','b','c')
>>> zip(a,b)
[('1', 'a'), ('2', 'b'), ('3', 'c')]

map:传入两个参数,一个是函数,一个是要传入函数的参数所构成的列表.

例如:

def  fun(x):
    return x*2
print map(fun,[1,2,3,4])
output:
    [2,4,6,8]

reduce:把一个函数作用在一个序列 [x1, x2, x3,
...]  上,这个函数必须接收两个参数, reduce  把结果继续和序列的下一个元素
做累积计算。

def  fun(x,y):
    return x+y
print reduce(fun,[1,2,3,4])
output:

10

filter过滤:和 map()  类似, filter()  也接收一个函数和一个序列。和 map()  不同的
时, filter()  把传入的函数依次作用于每个元素,然后根据返回值是 True  还
是 False  决定保留还是丢弃该元素。注意到 filter()  函数返回的是一个 Iterator  ,也就是一个惰性序列,所以要
强迫 filter()  完成计算结果,需要用 list()  函数获得所有结果并返回list

def  fun(x):
    return x>0
print list(filter(fun,[-1,0,1,2,3,4]))

output:

[1,2,3,4]


你可能感兴趣的:(python)