一、lambda关键字创建匿名函数
可以简化代码的可读性,对于一些程序里面只需要调用一两次的函数,也可以省去命名的烦恼。
基本语法:
lambda param__list:expression
#expression,表达式
冒号左边放原函数参数,有多个参数用逗号隔开,冒号右边放返回值。
a、普通函数
>>> def test_lambda(x,y):
return x + y
>>>
>>> test_lambda(4,7)
11
b、匿名函数
>>> data = lambda x,y : x + y
>>>
>>> data(4,7)
11
二、filter()函数
filter是Python里面的过滤器,通过过滤器可以保留所需要的信息,丢掉不需要的信息。
基本语法:
filter(function,iterable)
#filter返回的结果必须是True或者False
#第一个参数可以是一个函数也可以是None,如果是函数,则将第二个参数里面的每一个元素作为函数参数进行计算,把返回值为True的元素筛选出来。如果是None,则直接将第二个参数里面返回值为True的元素筛选出来。
#第二个参数接收一个可迭代的序列。
a,第一个参数为None
>>> data = filter(None,[1,'老胡',0,False])
>>>
>>> result = list(data)
>>>
>>> print(result)
[1, '老胡']
因为0和False的返回值为False,所以返回了1和字符串
b、第一个参数为函数
>>> #利用filter()写一个筛选0—30的基数的过滤器
>>>
>>> def test_filter(x):
return x % 2
>>> data = filter(test_filter,range(31))
>>>
>>> result = list(data)
>>>
>>> print(result)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]
结合lambda可写为
>>> list(filter(lambda x : x % 2,range(31)))
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]
三、map()函数
将序列中的每一个元素,作为函数的参数进行运算,返回所有元素运算后的新序列。
基本语法
map(function,*iterable)
#第一个参数接收一个函数。
#第二个参数接收一个或多个可迭代的序列。
>>>#将两个列表元素相乘之后的结果,放在一个新列表中
>>>
>>> a = [1,3,5,7,9]
>>>
>>> b = [2,4,6,8,10]
>>>
>>> def test_map(x,y):
return x * y
>>> data = map(test_map,a,b)
>>>
>>> result = list(data)
>>>
>>> print(result)
[2, 12, 30, 56, 90]
结合lambda可写为
>>> a = [1,3,5,7,9]
>>>
>>> b = [2,4,6,8,10]
>>>
>>> list(map(lambda x,y : x * y,a,b))
[2, 12, 30, 56, 90]