循环dict查找max

2024-09-29 01:30:19 发布

您现在位置:Python中文网/ 问答频道 /正文

有很多例子可以说明如何在dict中找到最大值。我很好奇为什么不能用这种方法找到最大键/值。

from random import randint

# Create dict with random keys and values.
d = {randint(1, 99): randint(1, 99) for i, j in enumerate(range(20))}

# Loop through dict to find max value
maxi = 0
for key in d:
    if d[key] > maxi:
        maxi = key

print(d, d[maxi])

目视检查d,可以看出d[maxi]不是最大值。


Tags: and方法keyinfromimportforcreate
3条回答

代码的问题是,第一次发现大于0的值时,存储的是键而不是值。然后将下一个值与存储的最后一个键进行比较。

最后,你存储了一个不是你想要的数字(我不知道这个数字是否有一个逻辑以maxi结尾——我猜这只是另一个随机数)。

if d[key] > maxi正在比较当前和最大。最简单的更改是写入if d[key] > d[maxi]。(您也可以将最大值保留为它自己的变量)。

>>> d = {"a": 5, "b": 99, "c": 3}
>>> max(d, key=d.get)
'b'

相关问题 更多 >