Python中的Lambda函数(匿名函数)简介及应用
什么是Lambda函数
Lambda函数,也称为匿名函数,是Python中的一个特殊表达方式。Lambda函数是指没有名称的函数,它是一种一次性使用的简单函数,通常用于函数式编程中。
Lambda函数通常被用于需要一个函数,但是否值得为其创建一个完整的函数的场合。Lambda函数可以完成简单的函数操作,如过滤器(filter)和映射(map)。
Lambda函数的语法
Lambda函数的语法非常简单,我们直接来看一个例子:
lambda arguments : expression
其中:
- arguments:形参列表
- expression:函数体
下面再来看一些具体的例子。
例1:
我们要编写一个函数,输入一个数字,返回其平方。使用Lambda函数可以很方便地实现:
square = lambda x: x * x print(square(4))
输出:
16
例2:
将一个字符串的首字母转换为大写字母。我们可以使用Python中sentence.casefold()和sentence.capitalize()方法来实现。
sentence = "the quick brown fox jumps over the lazy dog" upper_case = lambda s: s[0].upper() + s[1:] new_sentence = ' '.join(list(map(upper_case, sentence.split()))) print(new_sentence)
输出:
The Quick Brown Fox Jumps Over The Lazy Dog
Lambda函数的应用
Lambda函数最常见的场景是在函数式编程中,用于函数的过滤器、映射和排序等操作。下面我们分别来看一下这几种应用。
过滤器(filter)
过滤器是对一个序列进行过滤,使其中符合某些条件的元素被保留。在Python中,使用filter()函数来进行过滤操作。
下面例子中,我们使用filter()函数过滤出列表中的偶数。
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even = list(filter(lambda x: x % 2 == 0, lst)) print(even)
输出:
[2, 4, 6, 8, 10]
映射(map)
映射是对一个序列中的每个元素应用函数,并将结果收集到一个新的序列中。在Python中,使用map()函数来进行映射操作。
下面例子中,我们使用map()函数计算列表中每个元素的平方。
lst = [1, 2, 3, 4, 5] square = list(map(lambda x: x * x, lst)) print(square)
输出:
[1, 4, 9, 16, 25]
排序(sort)
排序是对一个序列进行排序操作,使其符合我们所设定的规则。在Python中,使用sort()函数来进行排序操作。
下面例子中,我们使用sort()函数按照字母顺序对一个字符串列表进行排序。
lst = ['john', 'paul', 'george', 'ringo'] lst.sort(key=lambda s: s.lower()) print(lst)
输出:
['george', 'john', 'paul', 'ringo']
注意:使用Python内置的sorted()函数也能够实现相同的排序效果。
总结
通过本文的介绍,我们了解了Lambda函数在Python中的语法以及常见的应用场景。使用Lambda函数可以让我们更加简洁地编写一些小型函数,提高代码的可读性和简洁性。但是需要注意,由于Lambda函数的表达式是单行的,所以不宜在其中使用过长的代码逻辑。
