1、Python 匿名函数,指的是采用关键字lambda定义的一个函数格式:
比如三个数相加
add = lambda x,y,z:x+y+z
add = lambda x,y,z:x+y+z
print add(1,2,3)
2、Python 高阶函数,指的是python中内置的可以把函数作为参数传入的函数,可能有点绕,看看例子就会明白了
例如:
函数名:map
格式:map(自定义的函数名,序列)
作用:循环把自定义的函数作用在序列的每一个元素中,并返回一个处理后的值,即把序列中的每一个元素作为参数传入自定义的函数中
例子:把一个包含不同类型的序列中的所有字符串都变为小写
list_demo = [123,'aBc',u'哈哈','HHH']
def str_low(str_tmp):
return str_tmp.lower() if isinstance(str_tmp,str) else str_tmp
print map(str_low,list_demo)
其他高价函数还有
filter:判断结果自动过滤掉不符合条件的元素,返回由符合条件的元素组成的list
例子:把一个包含不同类型的序列中的非字符串元素去掉
list_demo = [123,'aBc',u'哈哈']
print filter(lambda x:isinstance(x,str),list_demo)
reduce:自定义的函数必须要有两个参数,第一次调用是把序列的前两个元素传递给自定义的函数,第二次调用时,把前两个序列元素的计算结果当成第一个参数,序列的第三个元素当成第二个参数,继续传入自定义的函数进行操作,以此类推,并最终返回结果,有点类似递归的形式;
例子:把一个只包含字符串元素的序列的所有元素组成一个单独的字符串
list_demo = ['123','aBc',u'哈哈']
print reduce(lambda x,y:x+y,list_demo)