欢迎访问宙启技术站
智能推送

Python中的Lambda函数(匿名函数)简介及应用

发布时间:2023-05-26 04:04:47

什么是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函数的表达式是单行的,所以不宜在其中使用过长的代码逻辑。