【问题标题】:Python min fucntion with lambda if statement带有 lambda if 语句的 Python min 函数
【发布时间】: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?

【问题讨论】:

  • 您将 10 传递给 min 函数。结果怎么会是4
  • key 仅用于做出决定,而不是将返回的值。返回值是您最初传入的值之一。
  • 我认为key 会影响价值。感谢cmets!现在我完全理解了。

标签: python python-3.x lambda


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 2021-12-16
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多