【发布时间】:2021-06-26 15:17:05
【问题描述】:
我对 min() 和 max() 中 key 参数的行为有点困惑
假设我有以下列表:c=[10,11,15,25,50]
我希望最大值超过 20,所以我这样做:max(c,key= lambda x: x>20)。结果是 25,应该是 50。
我希望最大值低于 20,所以我这样做:max(c,key= lambda x: x<20)。结果是 10,应该是 15。
与 min() 相同。如果我想要 20 以上的最小值 (min(c,key= lambda x: x>20)),这会给我 10,而不是 25。
有人可以帮忙解释一下吗?我想更好地理解,以避免在处理不同的条件时出错。
【问题讨论】:
-
如果
x>20,lambda x: x>20的键将返回True,否则返回False。它不会返回x本身的值。 -
是什么让您认为
key= lambda x: x>20会将输出限制 为大于20 的值?您认为max(c,key= lambda x: -x)应用了哪些“限制”?