lambda表达式(匿名函数表达式)

作用:创建一个匿名函数对象。同def类似,但不提供函数名。
语法:lambda [形参1,形参2,…] : 表达式
语法说明
- lambda 只是一个表达式,它用来创建一个函数对象。
- 当lambda表达式调用时,先执行冒号后的表达式,并返回表达式的结果的引用。
- lambda 表达式创建的函数只能包含一条表达式。
- lambda 表达式比函数简单,且可以随时创建和销毁,有利于减少程序的偶合度。
把lambda函数赋值给一个变量
# 定义一个加法函数,并把值赋给变量myadd,就可以执行myadd(5, 6);
myadd = lambda x, y: x+y
print myadd(5, 6) # 结果:11
把lambda函数赋值给其他函数
----------欢迎加入我的python新手交流群851211580------------
import time, datetime
time.sleep = lambda x: None # time 库的 sleep 函数不会执行原功能;
starttime = datetime.datetime.now()
time.sleep(3)
endtime = datetime.datetime.now()
print endtime-starttime # 结果:0:00:00

把lambda函数作为其他函数的返回值
def add(n):
return lambda x: x+n
myadd = add(5)
print myadd(15) # 结果:20
def add(x):
def inner(y):
return x+y
return inner
myadd = add(5)
print myadd(15) # 结果:20
把lambda函数做参数传给其它函数(map, filter, reduce)
# 利用map映射函数输出序列加工后的新序列。
print map(lambda x: x ** 2, range(1, 3)) # 结果:[1, 4] map返回类型:<type 'list'>
def arr(x):
return x ** 2
print map(arr, range(1, 3)) # 结果:[1, 4] map返回类型:<type 'list'>
# 利用filter过滤函数输出0-9的奇数;返回False时将此数据丢弃,返回True,则保留此数据
print filter(lambda x: x % 2, range(10)) # 结果:[1, 3, 5, 7, 9] filter返回类型:<type 'list'>
def odd(x):
return x % 2
print filter(odd, range(10)) # 结果:[1, 3, 5, 7, 9] filter返回类型:<type 'list'>
本文深入探讨Python中的lambda表达式,介绍其作为匿名函数的使用和特点,包括如何赋值、作为参数传递等。同时讲解了eval和exec函数的用法,以及Python中的高阶函数概念。
4626

被折叠的 条评论
为什么被折叠?



