python - can lambda have more than one return

前端 未结 4 501
忘了有多久
忘了有多久 2021-02-05 02:22

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:

相关标签:
4条回答
  • 2021-02-05 02:54

    Print the table of 2 and 3 with a single range iteration.

    >>> 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)]
    
    0 讨论(0)
  • 2021-02-05 03:02

    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
    
    0 讨论(0)
  • 2021-02-05 03:03

    what about:

    lambda a,b: (a+1,b*1)
    
    0 讨论(0)
  • 2021-02-05 03:04

    Sure:

    lambda a, b: (a + 1, b * 1)
    
    0 讨论(0)
提交回复
热议问题