python - lambda可以有多个返回

2022-01-20 00:00:00 python tuples lambda

问题描述

我知道 lambda 没有返回表达式.正常

I know lambda doesn't have a return expression. Normally

def one_return(a):
    #logic is here
    c = a + 1
    return c

可以写成:

lambda a : a + 1

如何在 lambda 函数中编写这个:

How about write this one in a lambda function:

def two_returns(a, b):
    # logic is here
    c = a + 1
    d = b * 1
    return c, d


解决方案

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

Yes, it's possible. Because an expression such as this at the end of a function:

return a, b

相当于这个:

return (a, b)

在那里,您实际上返回了一个值:一个恰好有两个元素的元组.所以可以让 lambda 返回一个元组,因为它是单个值:

And there, you're really returning a single value: a tuple which happens to have two elements. So it's ok to have a lambda return a tuple, because it's a single value:

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

相关文章