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
执行而不是返回转换后的值之一,它返回您最初传递的值之一。