【发布时间】:2021-09-10 07:26:13
【问题描述】:
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
我的预测
- key的lambda函数,x变成4,x2变成4 所以,min 函数选择 x,最后比较 = 4
但是,它说 compare = 1。
compare 怎么可能是 1?
【问题讨论】:
-
您将
1和0传递给 min 函数。结果怎么会是4? -
key仅用于做出决定,而不是将返回的值。返回值是您最初传入的值之一。 -
我认为
key会影响价值。感谢cmets!现在我完全理解了。
标签: python python-3.x lambda