python - lambda可以有多个返回

时间:2013-05-21 15:39:58

标签: python lambda tuples

我知道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

4 个答案:

答案 0 :(得分:30)

是的,这是可能的。因为在函数末尾有这样的表达式:

return a, b

等同于:

return (a, b)

在那里,你真的回归了一个单一的值:一个碰巧有两个元素的元组。所以让一个lambda返回一个元组是可以的,因为它是一个单值:

lambda a, b: (a, b) # here the return is implicit

答案 1 :(得分:15)

不确定

lambda a, b: (a + 1, b * 1)

答案 2 :(得分:9)

怎么样:

lambda a,b: (a+1,b*1)

答案 3 :(得分:0)

用单次范围迭代打印 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)]