在《python代码整洁之道》中,1.3.3 应该使用lambda吗
作者对于代码1-21的书写如下
data = [[7], [3], [0], [8], [1], [4]]
def min_val(data):
"""Find minimu value from the data list."""
return min(data, key=lambda x:len(x))
在输入min_val(data)求值运行之后并不会输出“0”,而是输出“[7]”,这是作者的错误还是我的使用和理解错误(查看英文版仍然是这样的代码)?
我的理解是
min([x[i] for x in data, for i in range(len(x))])
或
min(data, lambda x:x[0])
因为显然比较的是data中每个list的第一个值。
另外的,如果对于二维数组对于其所有数值比较取最小值,类似 data=[[1,2,3],[4,5,6],[7,8,9],[0,-1,10]]这种又如何用min和lambda结合求出最小值“-1”呢?