我知道 lambda 没有返回表达式。一般
def one_return(a):
#logic is here
c = a + 1
return c
可以写成:
lambda a : a + 1
如何在 lambda 函数中编写这个:
def two_returns(a, b):
# logic is here
c = a + 1
d = b * 1
return c, d
是的,这是可能的。因为在函数末尾有这样的表达式:
return a, b
相当于这个:
return (a, b)
在那里,你真的返回了一个值:一个恰好有两个元素的元组。所以可以让 lambda 返回一个元组,因为它是一个单一的值:
lambda a, b: (a, b) # here the return is implicit
当然:
lambda a, b: (a + 1, b * 1)
关于什么:
lambda a,b: (a+1,b*1)
使用单范围迭代打印 2 和 3 的表。
>>> list(map(lambda n: n*2, range(1,11)))
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
>>> list(map(lambda n: (n*2, n*3) , range(1,11)))
[(2, 3), (4, 6), (6, 9), (8, 12), (10, 15), (12, 18), (14, 21), (16, 24), (18, 27), (20, 30)]