Python 查找最高键

Python 查找最高键,python,dictionary,Python,Dictionary,我只是对为什么我的代码不能工作感到困惑,这里是我目前为止的问题和代码(测试运行表明我的答案是错误的) 给定字典d,在字典中找到最大的键,并将相应的值与变量val\u of_max相关联。例如,给定字典{5:3,4:1,12:2},2将与val\u of_max相关联。假设d不是空的 d = {5:3, 4:1, 12:2, 14:9} val_of_max = max(d.keys()) print val_of_max 您的代码打印具有最大值的密钥。你想要的是: d = {5:3, 4:1,

我只是对为什么我的代码不能工作感到困惑,这里是我目前为止的问题和代码(测试运行表明我的答案是错误的)

给定字典
d
,在字典中找到最大的键,并将相应的值与变量
val\u of_max
相关联。例如,给定字典
{5:3,4:1,12:2}
,2将与
val\u of_max
相关联。假设
d
不是空的

d = {5:3, 4:1, 12:2, 14:9}
val_of_max = max(d.keys())
print val_of_max
您的代码打印具有最大值的密钥。你想要的是:

d = {5:3, 4:1, 12:2, 14:9}
val_of_max = d[max(d.keys())]
print val_of_max
也就是说,您必须取消对键的引用以返回值。

您的代码打印具有最大值的键。你想要的是:

d = {5:3, 4:1, 12:2, 14:9}
val_of_max = d[max(d.keys())]
print val_of_max
也就是说,您必须取消对键的引用以返回值。

这样做可以:

>>> d = {5:3, 4:1, 12:2, 14:9}
>>> d[max(d)]
9
>>> max(d)        # just in case you're looking for this
14
这将有助于:

>>> d = {5:3, 4:1, 12:2, 14:9}
>>> d[max(d)]
9
>>> max(d)        # just in case you're looking for this
14

相同的代码,但请记住调用键的值:

d = {5:3, 4:1, 12:2, 14:9}
val_of_max = max(d.keys())
print d[val_of_max]

相同的代码,但请记住调用键的值:

d = {5:3, 4:1, 12:2, 14:9}
val_of_max = max(d.keys())
print d[val_of_max]
要打印与最大键关联的值,请执行以下操作:

print max(d.iteritems())[1]
要打印与最大值关联的键,请执行以下操作:

import operator
print max(d.iteritems(), key=operator.itemgetter(1))[0]
要打印与最大键关联的值,请执行以下操作:

print max(d.iteritems())[1]
要打印与最大值关联的键,请执行以下操作:

import operator
print max(d.iteritems(), key=operator.itemgetter(1))[0]

嗯,我只是误读了这个问题,很好。非常感谢^^如果您使用.iterkeys()而不是.keys(),这会稍微有点效率。@keysɔu:如果您完全放弃任何dict方法,效率会更高。哦,我不是在尝试编写最高效的代码(尽管如果我是Python方面的专家,我会这样做)。我只是想修正那个家伙的密码。嗯,我只是误读了这个问题,这很好。非常感谢^^如果您使用.iterkeys()而不是.keys(),这会稍微有点效率。@keysɔu:如果您完全放弃任何dict方法,效率会更高。哦,我不是在尝试编写最高效的代码(尽管如果我是Python方面的专家,我会这样做)。我只是想修复那个家伙的代码。实际上我是想找到最大键值而不是最大值。在你的例子中,最大键值对应最大值。我和内森做的完全一样,只是用一种理智和更有效的方式。+1,当max(d)也能正常工作时,使用max(d.keys())绝对没有意义!实际上,我试图找到的是最大键值,而不是最大值。在您的示例中,最大键值对应于最大值。我和内森做的完全一样,只是用一种理智和更有效的方式。+1,当max(d)也能正常工作时,使用max(d.keys())绝对没有意义!您的问题标题与您的问题不匹配。问题包括“字典中最大的键和关联对应值”标题只是“最高键”,省略了“关联对应值”部分。你能编辑你的问题以使标题与你真正的问题匹配吗?你的问题标题与你的问题不匹配。问题包括“字典中最大的键和关联对应值”标题只是“最高键”,省略了“关联对应值”部分。你能编辑你的问题,使标题与你真正的问题相匹配吗?