lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。
语法:lambda parameters:express
parameters是要输入的参数,后面紧接着冒号,冒号的后面是要用的表达式。lambda函数可以当成函数来使用。
func = lambda parameters: express
func作为函数,可以输入参数。例如:
s接小括号,括号里面是lambda后面的参数parameters,s表示函数的结果,返回的是输入参数带入表达式执行后的结果。
下面是实际中遇到的lambda函数的使用:
语音识别中:
labels如下:
word_num_map是语音数据集中标签组成的字典,字典的大小是不重复的所有汉字对应的位置。
上面的函数实现了将语音数据中的每一个语音文件映射成为一个数字矩阵:其中的空格(' ')也是一个标签。
比如某语音数据的标签为:绿 是 阳春 烟 景 大块 文章 的 底色 四月 的 林 峦 更是 绿 得 鲜活 秀媚 诗意 盎然
其映射为数字列表:
[479,0,7,0, 138, 268, 0, 220, 0, 709, 0, 23, 260, 0, 28, 1186,0, 1, 0, 439, 199, 0, 72, 38, 0, 1,0, 459, 0, 1172, 0, 269, 7, 0, 479, 0, 70,
0, 811, 254, 0, 671, 1677,0, 1237, 136, 0, 1977, 91]另外:map()函数的语法map(function, iterable, ...),function参数是作用在iterable上的函数,iterable中的每一个对象按照函数fuction执行。
执行的结果作为值作为map的输出返回。比如:
上面的lambda函数中word_num_map.get(word, len(words))使用到了dict.get(key,default)方法。
word_num_map作为一个字典,word_num_map.get方法是指,当字典中能够找到word键时则返回word键表示的键值,否则返回默认的设定值: