有些读者反映,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
冒号后表达式的返回值。