max()lambda函数无法正常工作

时间:2020-11-05 10:59:02

标签: python

我有花车清单。我想找到小于b的列表的最大值

valuex_x = [1.9,1.11,1.17,1.19,2.12,2.14,2.18,2.20,3.10,3.15,3.17,3.22,5.11,5.12,]


b = input()
print(max(value_list_x, key = lambda x: x < float(b)))

因此,例如,当b = 4时,它返回1.9而不是3.22 为什么?如何解决?

1 个答案:

答案 0 :(得分:2)

您的自定义键函数返回TrueFalse,因此max()返回其求值True的第一个值。首先过滤列表,然后应用max()

valuex_x = [1.9,1.11,1.17,1.19,2.12,2.14,2.18,2.20,3.10,3.15,3.17,3.22,5.11,5.12,]
b = 4

print( max(v for v in valuex_x if v < b) )

打印:

3.22