1、概览
关键字lambda表示匿名函数
list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
# 列表生成式中的 lambda 实际就是
def f(x):
return x * x
但匿名函数有个限制,就是只能有一个表达式。
匿名函数不用写return,返回值就是该表达式的结果
匿名函数因为函数没有名字,不必担心函数名冲突。
此外,匿名函数也是一个函数对象,可以把匿名函数赋值给一个变量,再利用变量来调用该函数,也可以把匿名函数作为返回值返回
# 匿名函数赋值变量
>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x101c6ef28>
>>> f(5)
25
# 匿名函数作为返回值返回
def build(x, y):
return lambda: x * x + y * y
2、例子
1、将下面的函数改为匿名函数
# -*- coding: utf-8 -*-
def is_odd(n):
return n % 2 == 1
L = list(filter(is_odd, range(1, 20)))
print(L)
# 更改
L = list(filter(lambda x:x%2==1, range(1, 20)))
原文地址:http://blog.51cto.com/12758568/2116746