Shengjie - 1 year ago 35

Python Question

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

`def one_return(a):`

#logic is here

c = a + 1

return c

can be written:

`lambda a : a + 1`

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

Answer Source

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

```
return a, b
```

Is equivalent to this:

```
return (a, b)
```

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
```