Python - 查找最大值

问题描述 投票:0回答:2

我试图使用列表中的第二个元素找到包含列表的字典的最大值。

这是一个例子。

data = {0: [6.6, 0.19920350542916282],
 1: [0.31000000000000005, 0.13792538097003],
 2: [1.55, 0.2935644431995964],
 3: [12.5, 0.2935644431995964]}

max(data.items(), key=lambda x:x[1][1])

output will be (2, [1.55, 0.2935644431995964])

但是我希望输出为(3, [12.5, 0.2935644431995964]})

即当两个值相同时,再次查看这些值列表的第一个元素并选取具有最大值的那个值。

python python-3.x dictionary
2个回答
1
投票

当两个值相同时,再次查看这些值列表的第一个元素并选取具有最大值的值

然后使用(x[1][1], x[1][0])元组作为关键:

>>> max(data.items(), key=lambda x:(x[1][1], x[1][0]))
(3, [12.5, 0.2935644431995964])

1
投票

这应该工作:

data = {0: [6.6, 0.19920350542916282],
 1: [0.31000000000000005, 0.13792538097003],
 2: [1.55, 0.2935644431995964],
 3: [12.5, 0.2935644431995964]}

max(data.items(), key=lambda x:(x[1][1],x[1][0]))
© www.soinside.com 2019 - 2024. All rights reserved.