0

有许多可用示例展示了如何在 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]不是最大值。

4

4 回答 4

4

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

于 2013-02-15T03:23:01.067 回答
1
>>> d = {"a": 5, "b": 99, "c": 3}
>>> max(d, key=d.get)
'b'
于 2013-02-15T03:44:40.900 回答
1

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

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

于 2013-02-15T03:47:01.157 回答
0

另一种方法是使用字典items()函数获取键、值并比较值以找到最大值。

max_key = None
max_val = None

for key, val in your_dict.items():

    if max_val is None or val > max_val:
        max_val = val
        max_key = key


print(max_key, max_val)
于 2017-12-20T15:23:15.977 回答