📜  在 python 中映射和过滤 (1)

📅  最后修改于: 2023-12-03 15:37:27.213000             🧑  作者: Mango

在 Python 中映射和过滤

Python 中有许多内置函数用于对序列进行映射和过滤操作。这些函数可以让你方便地对序列进行操作,让代码更简洁和易读。在本文中,我们将讨论 map()、filter() 和 lambda 表达式的概念和用法。

map()

map() 函数用于对序列中的每个元素应用某个函数,然后返回一个由函数处理后的元素组成的新列表。map() 函数语法如下:

map(function, iterable, ...)

其中,function 是要应用于序列中的每个元素的函数,iterable 是一个或多个序列。

例如,我们有一个列表 lst,要将其中的每个元素平方:

lst = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, lst))
print(squared)

输出为:

[1, 4, 9, 16, 25]

在这个例子中,lambda 表达式定义了平方函数,然后将其作为参数传递给 map() 函数。最后,通过 list() 将返回的迭代器转换为列表。

filter()

filter() 函数用于对序列中的元素进行过滤,然后返回一个包含所有符合条件的元素的新列表。filter() 函数语法如下:

filter(function, iterable)

其中,function 是用于过滤序列的函数,iterable 是要过滤的序列。

例如,我们有一个列表 lst,要从中筛选出所有的偶数:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even = list(filter(lambda x: x % 2 == 0, lst))
print(even)

输出为:

[2, 4, 6, 8]

在这个例子中,我们使用了 lambda 表达式来定义筛选条件,然后将其作为参数传递给 filter() 函数。

lambda 表达式

lambda 表达式是 Python 中的一个匿名函数,不需要像普通函数一样使用 def 关键字进行定义。它的语法如下:

lambda arguments: expression

其中,arguments 是函数的参数列表,expression 是函数的返回值。

例如,要创建一个计算平方的 lambda 函数,可以这样写:

squared = lambda x: x**2

然后可以像普通函数一样使用它:

result = squared(3)
print(result)

输出为:

9
结论

在 Python 中,map() 和 filter() 函数可以让你更方便地对序列进行映射和过滤操作。而 lambda 表达式则是一个强大的工具,可以用来创建匿名函数。