如何查找Python 字典中的最大值

2,615 阅读3分钟

问题的提出和解决方案概述

在这篇文章中,你将学习如何找到 Python 字典中的最大值。

为了使它更有趣,我们有以下的运行场景。

你在市场上买车,并将搜索范围缩小到几个可能性。你的最终选择将基于拥有最大MPG的车辆。这些汽车的清单是以字典的key:value格式提供给你的。

💬 问题是。我们如何编写Python代码来确定Dictionary中的最大值?

我们可以通过下面的一个选项来完成这个任务。

  • 方法1:使用 dict.values()max()来显示最大值
  • 方法2:使用列表max()来显示最大值
  • 方法3:使用 [dict.keys()](https://blog.finxter.com/python-dict-keys-method/)dict.values()来显示最大值和键
  • 方法4:使用 dict.getmax()来显示最大值和键

在每个代码片断的顶部添加以下代码。这个代码片断将使本文中的代码无错误地运行。

 import operator

方法1:使用dict.values()和max()来显示最大值

使用 dict.values()max()来确定并返回一个字典中的最大值**,**使用max(dict.values())

cars_dict = {'Malibu': 18, 'Skylark': 16, 'Satellite': 19, 
            'Torino': 27, 'Challenge': 20}
car_values = cars_dict.values()
max_value = max(car_values)
print(max_value)

这段代码声明了一个包含五(5)个键:值对的字典cars 和相关的MPG 。每个对的都被提取出来并保存到car_values

[](https://blog.finxter.com/python-max/)[max()](https://blog.finxter.com/python-max/)函数被调用并传递给car_values ,以确定并返回最大值。结果保存到max_value 并输出到终端。

输出

27

方法2:使用list和max()来显示最大值

使用Listmax()来确定和返回最大值,使用max(list(cars_dict.values()))

下面是一个例子。

cars_dict = {'Malibu': 18, 'Skylark': 16,
             'Satellite': 19, 'Torino': 27, 'Challenge': 20}
max_val = max(list(cars_dict.values()))
print(max_val)  

这段代码将Dictionary转换为List,从key:value对和中提取数值max()来确定并返回最大值。
其结果保存在max_value ,并输出到终端。

输出

27

方法3:使用dict.keys()和dict.values()来显示最大值和关键值

这个例子使用dict.keys()dict.values()来确定并返回最大值和相关的

cars_dict = {'Malibu': 18, 'Skylark': 16,
             'Satellite': 19, 'Torino': 27, 'Challenger': 20}
sort_dict = sorted(cars_dict.items(), key=operator.itemgetter(1), reverse=True)
print(f'{sort_dict[0][0]}:\t{sort_dict[0][1]}')

这段代码声明了一个包含五(5)个键:值对的字典cars 和相关的MPG

然后 [dict.items()](https://blog.finxter.com/python-dict-items-method/)operator.itemgetter()字典中的键:值对按降序排序。最大的键:值对被设置为第一个元素。

格式化的结果被输出到终端。

输出

Torino: 27

方法4:使用dict.get和max()来显示最大值和关键值

使用 dict.getmax()来确定并返回最大值和相关的max(dict, key=cars_dict.get)

cars_dict = {'Malibu': 18, 'Skylark': 16,
             'Satellite': 19, 'Torino': 27, 'Challenger': 20}
max_val = max(cars_dict, key=cars_dict.get) 
print(max_val, cars_dict[max_val])

这段代码声明了一个包含五(5)个键:值对的cars 和相关的MPG字典

然后通过字典调用max ,并检索key:value对,保存到max_val

[print](https://blog.finxter.com/python-print/)语句确定最大值并向终端输出适当的键:值对。

输出

Torino 27

总结

这四(4)种在字典中寻找最大值的方法应该给你足够的信息来选择最适合你编码要求的方法。

祝您好运,编码愉快!