lambda只是一个表达式,不需要定义函数,故也是匿名函数,用法为:lambda 参数:表达式。
x=5
list1=[2,3,4]
list2=[10,20,30]
s=lambda x:x**3
g=lambda x,y:x+y
print(s(x))
print(g(list1,list2))
测试结果:
E:\Anaconda3\python.exe E:/python知识.py
125
[2, 3, 4, 10, 20, 30] 进程已结束,退出代码 0
map函数,它接收一个函数和若干个序列,返回新的序列,用法为map(function,iterable1,iterable2,...),function为函数表达式,这样就可以跟lambda表达式完美结合。
list1=[2,3,4]
list2=[10,20,30] #用lambda表达式
print(map(lambda x,y:x+y,list1,list2))#返回的是map对象,需要用list转换
print(list(map(lambda x,y:x+y,list1,list2)))#list转换结果
#定义函数
def func(x,y):
return x+y
print(list(map(func,list1,list2)))
测试结果:
E:\Anaconda3\python.exe E:/python知识.py
<map object at 0x0000000003E2DCC0>
[12, 23, 34]
[12, 23, 34] 进程已结束,退出代码 0