首页 > 解决方案 > Python min 函数与 lambda if 语句

问题描述

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

为什么比较是1?我只是想想

a // 3 = 1 -> x

a // 5 = 0 -> x2

我的预测

但是,它说比较= 1。

怎么能比较为1?

标签: pythonpython-3.xlambda

解决方案


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


推荐阅读