Python 内置函数:lambda、map、filter 简明指南
本文介绍 Python 中 lambda、map 和 filter 三个内置函数的用法。lambda 用于创建匿名函数,map 用于对序列进行映射处理,filter 用于过滤序列。通过具体代码示例展示它们的定义、调用及处理列表的方法,帮助开发者高效处理数据。
lambda 表达式:匿名函数的定义与使用
在 Python 中,lambda 是一个表达式而非语句。它的核心特点在于内部只能执行一个表达式,这使得它非常适合用于简单的、一次性使用的场景。与常规的 def 函数定义不同,lambda 可以在 def 不允许的地方使用,例如作为其他函数的参数。
其调用方式与普通函数定义后的调用完全相同。以下代码展示了如何定义一个计算平方的 lambda 函数,并演示了多参数 lambda 的用法:
def f(x):
return x**2
print f(3)
a = lambda x: x**2
print a(3)
a = lambda x,y: x+y
print a(1,2)
map 函数:序列映射处理
map 函数接受一个函数和一个或多个列表作为参数。它的作用是将传入的函数依次作用于列表中的每一个元素,并返回处理后的结果列表。在效率上,map 通常高于使用 for 循环进行相同操作,其逻辑类似于 C 语言中的循环处理,但更为简洁。
以下示例展示了如何使用 map 处理不同数量的参数列表。无论是单列表的加法,还是多列表对应元素的相加,map 都能高效完成:
def add1(a):
return a + 1
def add2(a, b):
return a + b
def add3(a, b, c):
return a + b + c
a1 = [1,2,3,4,5]
a2 = [1,2,3,4,5]
a3 = [1,2,3,4,5]
b = map(add1, a1)
print b
b = map(add2, a1, a2)
print b
b = map(add3, a1, a2, a3)
print b
filter 函数:序列过滤
filter 函数用于过滤列表。它接受一个过滤函数和一个列表作为参数,将列表中的每一项传入过滤函数。如果过滤函数返回 false(或假值),则该项会被删除;如果返回 true,则保留该项。
以下代码演示了如何过滤出大于 2 的元素。同时,这也展示了列表推导式(List Comprehension)作为替代方案的简洁性:
def add1(a):
if a > 2:
return True
return False
a1 = [1,2,3,4,5]
b = filter(add1, a1)
print b
c = [b for b in a1 if b > 2]
print c
以上就是 Python 内置函数 lambda、map 和 filter 的详细内容,更多关于 Python 数据处理技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









