Lambda函数
210705
Python支持所谓的匿名lambda函数。lambda函数是一种通过单个语句生成函数的方式,其结果是返回值。匿名函数使用lambda关键字定义,该关键字表达在此声明一个函数。
def short_function(x):
return x*2
equiv_anon = lambda x: x*2
因为lambda函数简短易懂,所以会经常被使用。再举个例子,先定一个自定义函数,然后用lambda函数执行。
In [10]: def apply_to_list(some_list,f):
...: return[f(x) for x in some_list]
...: ints=[4,0,1,5,6]
...: apply_to_list(ints,lambda x: x*2)
Out[10]: [8, 0, 2, 10, 12]
另外再举一个例子,将lambda函数出给列表中的sort的方法:
In [15]: strings=['foo','card','bar','aaaa','abab']
In [16]: strings.sort(key=lambda x: len(set(list(x))))
In [17]: strings
Out[17]: ['aaaa', 'foo', 'abab', 'bar', 'card']
3.2.5 柯里化: 部分参数应用
用已有的函数衍生出新的函数。
def add_mumbers(x,y):
return x+y
使用这个函数,就衍生出了一个只有一个变量的新函数,add_five,可以给参数加上5
def add_mumbers(x,y):
return x+y
add_five = lambda y: add_numbers(5,y)
怎么样,是不是都连起来了。虽然也没有什么神奇的地方。
网友评论