问题的提出和解决方案概述
在这篇文章中,你将学习如何找到 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.get和max()来显示最大值和键。
在每个代码片断的顶部添加以下代码。这个代码片断将使本文中的代码无错误地运行。
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()来显示最大值
使用List和 max()来确定和返回最大值,使用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.get和 max()来确定并返回最大值和相关的键,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)种在字典中寻找最大值的方法应该给你足够的信息来选择最适合你编码要求的方法。
祝您好运,编码愉快!