带有lambda if语句的Python最小函数


a = 4    
compare = min((a//3), (a//5), key=lambda x: x if x * 3 == a or x * 5 == a else a)

为什么compare是1?我正在考虑,

a//3 = 1 ->x

a//5 = 0 ->x2

我的预测

  • key的lambda函数,x变为4,x2变为4所以,最小函数选择x,最后比较= 4

但是,它说compare = 1

如何比较是1?

当您传递一个函数作为键时,它将您传递的参数转换为函数返回的任何内容,然后对它们执行min,但min执行而不是返回转换后的值之一,它返回您最初传递的值之一。

最新更新