Lambda 函數的動畫演示

有些讀者反映,lambda函數不太會用,問能不能解釋一下。

比如,下面lambda函數:

def max_len(*lists):      return max(*lists, key=lambda v: len(v))  

有以下疑惑:

  • 參數v的取值?
  • lambda函數有返回值嗎?
  • 如果有,返回值是多少?

以上函數求出三個列表中,最長的那個列表:

r = max_len([1, 2, 3], [4, 5, 6, 7], [8])  print(f'更長的列表是{r}')  

代碼完整執行過程,動畫演示如下:

結論:

  • 參數v的取值為圖中最下tuple 的一個元素。
  • lambda函數返回值等於lambda v冒號後表達式的返回值。