📅  最后修改于: 2023-12-03 15:37:27.213000             🧑  作者: Mango
Python 中有许多内置函数用于对序列进行映射和过滤操作。这些函数可以让你方便地对序列进行操作,让代码更简洁和易读。在本文中,我们将讨论 map()、filter() 和 lambda 表达式的概念和用法。
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(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 表达式是 Python 中的一个匿名函数,不需要像普通函数一样使用 def
关键字进行定义。它的语法如下:
lambda arguments: expression
其中,arguments
是函数的参数列表,expression
是函数的返回值。
例如,要创建一个计算平方的 lambda 函数,可以这样写:
squared = lambda x: x**2
然后可以像普通函数一样使用它:
result = squared(3)
print(result)
输出为:
9
在 Python 中,map() 和 filter() 函数可以让你更方便地对序列进行映射和过滤操作。而 lambda 表达式则是一个强大的工具,可以用来创建匿名函数。