我们可以创建匿名函数,称为:lambda 函数。这段代码显示如何使用 lambda 函数:
#!/usr/bin/env python f = lambda x : 2 * x print f(3)
一个返回语句是未使用过 lambda 函数,它总是返回一些东西。 lambda 函数可以包含 if 语句:
#!/usr/bin/env python f = lambda x: x > 10 print(f(2)) print(f(12))
map函数
映射的定义是 map(函数,可迭代)。它适用于一个函数可重复每一个项目。我们可以用 map(),以与列表中的lambda函数:
#!/usr/bin/env python list = [1,2,3,4,5] squaredList = map(lambda x: x*x, list) print(squaredList)
使用 lambda 函数任何地方,都可以使用正常的函数来代替。lambda 函数不是一个语句,它是一个表达式。lambda 函数不支持的语句块。
filter函数
过滤器(函数,迭代器)创建一个新的列表的元素,函数返回True。示例:
#!/usr/bin/env python list = [1,2,3,4,5,6,7,8,9,10] newList = filter(lambda x: x % 2 == 0, list) print(newList)
返回的列表将返回仅包含其中lambda表达式的元素 “lamba x: x % 2 == 0” 的值为:true.
reduce 函数
reduce 函数, reduce(function, iterable) 适用于两个参数累积到可迭代的项目,由左到右。示例:
#!/usr/bin/env python list = [1,2,3,4,5] s = reduce(lambda x,y: x+y, list) print(s)
在这种情况下,表达始终为:true,因此,它简单地概括了列表的元素。另一个例子:
#!/usr/bin/env python list = [10,6,7,5,2,1,8,5] s = reduce(lambda x,y: x if (x > y) else y, list) print(s)