簡體   English   中英

max() lambda 函數不能正常工作

[英]max() lambda function doesn't work correctly

我有浮點數列表。 我想找到小於 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 為什么? 怎么修?

您的自定義鍵函數返回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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM