1.Lambda:匿名函数
Lambda:匿名函数,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用。
def g(x): return x+1
等价于
g = lambda x:x+1
2.map函数
map():map(function_name,list)->list
map()将接受 一个函数与列表为参数
Python 2.x 返回列表。
Python 3.x 返回迭代器。
Python 2.x
>>> map(lambda x:x+2, [1, 2, 3]) [3, 4, 5]
Python 3.x
>>> m = map(lambda x:x+2, [1, 2, 3])
>>> for i in m:
... print(i)
3
4
5
3.reduce函数
把一个函数f(x,y)作用在一个序列[x1, x2, x3…]上,f(x,y)必须接收两个参数x,y,reduce把结果继续和序列的下一个元素做累积计算。
>>> reduce(lambda x, y:x+y, [1,2,3,4]) 10
注:3.X的版本中 ,reduce()函数已经被从全局名字空间里移除了,被放置在fucntools模块里,用的话要先引用,from functools import reduce
4.filter函数
filter(f,list)->list;
这个f的作用是对list的每个元素进行判断,返回True或False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
>>> filter(lambda x:x%2==1, [1, 2, 3]) [1, 3]
5.zip函数
接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。
>>> x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) >>> print xyz [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
6.map和zip
当map()函数的第一个参数为空时,map()跟zip()类似,也有不同
>>> map(None, [1, 2, 3, 4], [1, 2, 3, 4,5]) [(1, 1), (2, 2), (3, 3), (4, 4), (None, 5)] >>> zip([1, 2, 3, 4], [1, 2, 3, 4,5], [1, 2, 3]) [(1, 1, 1), (2, 2, 2), (3, 3, 3)]
zip按照最少的元素拼接