Lambda表达式
lambda表达式
通常我们在写程序的时候都要写很多函数,这些函数都有自己的名字,我们称为普通函数。但有时候我们可能只需要使用一个函数一次,在这种情况下,就无需正式定义一个普通函数,可以用lambda表达式定义一个匿名函数。lambda表达式不仅仅在Python中有,在其它很多编程语言,如Java,C#中都是存在的。
lambda表达式的格式
1 | lambda 形参 : 返回值表达式 |
lambda表达式就是将接收进来的参数经过一个表达式的运算后,运算结果作为返回值返回。
特别地,为了函数定义的方便,也可以将lambda表达式变成命名函数,格式如下:
1 | 函数名 = lambda 形参 : 返回值表达式 |
这样就可以像普通函数一样通过函数名去多次调用函数。
注意,lambda表达式形式简单,只支持单条语句,不支持选择和循环结构。
示例
我们写一个简单的排序程序,希望通过列表里的元素的平方值进行排序。
通常我们先定义一个普通函数:
1 | from random import randint,seed #引入随机数模块 |
结果为:
排序前:[-6,8,-8,-2,-7,5,4,5,10,2]
排序后:[-2,2,4,5,5,-6,-7,8,-8,10]
square这个函数只使用了一次,我们可以通过lambda表达式改写程序:
1 | a.sort(key=lambda x:x**2) #lambda表达式让程序更加简洁 |
结果一样:
排序前:[-6,8,-8,-2,-7,5,4,5,10,2]
排序后:[-2,2,4,5,5,-6,-7,8,-8,10]
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zunhuier's blog!
评论