在 Python 中在 for 循环使用 Lambda 函数

Isaac Tony 2022年5月18日
在 Python 中在 for 循环使用 Lambda 函数

Lambda 函数或匿名函数是没有名称的 Python 函数。这些函数是通过使用 lambda 关键字创建的,而不是传统上用于在 Python 中定义普通函数的 def 关键字。

与普通函数相比,Lambda 函数不仅更小,而且还有一些不同之处。最重要的是没有明确定义的 return 语句,并且仅限于一个表达式。

然而,lambda 函数就像普通的 Python 函数一样接受多个参数。

在 Python 中,Lambda 函数可以如下实现。

lambda arguments: expressions:

当需要创建用作另一个函数中的参数的函数对象时,将使用 Lambda 函数。

当与诸如 map() 之类的高阶函数一起使用时,Lambda 的威力尤为明显。这些函数接受其他函数对象作为参数。

此外,lambda 函数还可用于执行仅在短时间内需要匿名函数的操作。一个很好的例子是使用 lambda 函数和 for 循环对可迭代的所有元素执行特定操作。

下面的程序说明了我们如何使用 for 循环来迭代数字列表,并且在这种情况下使用 lambda 函数作为增量器。

nums1 = [45, 46, 47, 48, 50]
nums2 = []

for i in nums1:

    def x(i):
        return i + 1

    nums2.append(x(i))
print(nums2)

输出:

[46, 47, 48, 49, 51]

For 循环可用于迭代其他序列,例如元组、字符串、字典和集合。虽然 lambda 函数只能有一个表达式,但对可以使用的数据类型没有限制。

下面的示例说明了如何使用 for 循环和 lambda 函数迭代字符串列表。

fruits = ["mango", "apple", "melon", "pineapple"]
fruits_upper = []

for fruit in fruits:

    def x(fruit):
        return fruit.upper()

    fruits_upper.append(x(fruit))
print(fruits_upper)

输出:

['MANGO', 'APPLE', 'MELON', 'PINEAPPLE']

Lambda 函数可与 for 循环一起使用以创建 lambda 对象列表。使用这些对象,我们可以使用 for 循环对可迭代的元素执行操作。

这是有益的,特别是当目的是在迭代可迭代对象的同时进行更改而不会出现运行时错误时。

list = [1, 2, 3, 4, 5]


def add_two(x):
    return lambda: x + 2


list = [add_two(i) for i in list]

for element in list:
    print(element())

输出:

3
4
5
6
7
作者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

相关文章 - Python Lambda Function

相关文章 - Python Loop