python学习之函数(四)--lambda表达式
1.匿名函数:
python允许使用lamda关键字创建匿名函数
2.lambda关键字创建函数
lambda 是关键字,x是变量名,后面的2*x+1是返回值;在调用的时候,先给lambda表达式赋值,以后传参调用就可以了
s = lambda x: 2*x+1
print(s(5))
#---------也可以传递多个函数:
#传递多个参数
g = lambda x,y : x+y
print(g(2,3))
1)python在写一些执行脚本时候,不需要调用,就可以使用lambda函数
2)一些使用次数少并且比较抽象难命名的函数,可以使用lambda函数
3)简化代码的可读性
3.两个内置函数bif
1)filter()过滤器:有两个参数,一个是function或者none,一个是可迭代参数
filter(function/none,iterable可迭代参数)
filter(None,[1,0,True,False])filer前一个参数是none的时候,没有筛选函数,直接默认返回参数对象是true的值
print(list(filter(None,[1,0,True,False])))
结果:[1, True]
filter(function,参数对象)参数作为函数的参数,调用函数,默认返回函数值为ture的值;注意,函数不用加括号
#使用filter选出奇数
def odd(x):
return x%2
temp = range(10)
print(list(filter(odd,temp)))
结果:[1, 3, 5, 7, 9]
#换一种写法:
print(list(filter(lambda x:x%2,range(10))))
结果:[1, 3, 5, 7, 9]
2)map()映射:将序列的每一个元素,作为函数的参数,序列中所有参数都计算完成之后,返回一个新序列
#map()映射
print(list(map(lambda x:x*2,range(10))))
注意:map中必须有两个参数,只写一个会报错