Python 正在获取max(dict_name.values())以忽略字符串
我正在使用Python2.7获取与名为“names”的字典中的最大值相关联的名称,其中每个名称的值都是一个数字(特别是它们的年度薪酬)。我已经使用了代码Python 正在获取max(dict_name.values())以忽略字符串,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我正在使用Python2.7获取与名为“names”的字典中的最大值相关联的名称,其中每个名称的值都是一个数字(特别是它们的年度薪酬)。我已经使用了代码 max(names.values()) 问题是缺少了一些值并将其编码为“NaN”,这恰好是Python眼中的最大值。有没有办法将max()函数限制为数值并使其忽略非数值 一旦获得最大值,是否有方法使用该最大值来查找与其关联的名称(字典键) 谢谢 您可以预筛选出所有字符串: seq = [x for x in names.values() i
max(names.values())
问题是缺少了一些值并将其编码为“NaN”,这恰好是Python眼中的最大值。有没有办法将max()函数限制为数值并使其忽略非数值
一旦获得最大值,是否有方法使用该最大值来查找与其关联的名称(字典键)
谢谢 您可以预筛选出所有字符串:
seq = [x for x in names.values() if not isinstance(x, str)]
print max(seq)
或者您可以提供一个键函数,为字符串提供非常负的值:
print max(names.values(), key=lambda x: x if not isinstance(x, str) else float("-inf"))
谢谢你,凯文。你的回答完全符合我提出的问题,但它使我意识到我问错了问题。我应该把我的问题写得更清楚些。我正在努力找到薪水最高的人的名字。你的代码显然找到了最高的薪水。我可以用它来获取与该值关联的名称吗?字典被设置为通过键而不是值来访问,所以我不清楚如何做到这一点。谢谢在这种情况下,我将执行
max(d.keys(),key=lambda x:names[x],如果不是isinstance(names[x],str),则执行else float(“-inf”)