我的问题是关于使用 max 函数在字典中找到最高值。
我有一个看起来像这样的创建的字典:
cc_GDP = {'af': 1243738953, 'as': 343435646, etc}
我希望能够简单地找到并打印每个国家/地区的最高 GDP 值。
我读过类似问题的最佳尝试如下(我目前正在阅读 Python 速成课本,其中已采用此代码的基础,请注意 get_country_code 函数只是为 GDP_data 中的国家/地区提供 2 个字母的缩写json 文件):
#Load the data into a list
filename = 'gdp_data.json'
with open(filename) as f:
gdp_data = json.load(f)
cc_GDP` = {}
for gdp_dict in gdp_data:
if gdp_dict['Year'] == 2016:
country_name = gdp_dict['Country Name']
GDP_total = int(gdp_dict['Value'])
code = get_country_code(country_name)
if code:
cc_GDP[code] = int(GDP_total)
print(max(cc_GDP, key=lambda key: cc_GDP[key][1]))
这提供了以下错误 'TypeError: 'int' object is not subscriptable'
请注意,如果在打印功能中省略 [1],这确实提供了与最高值相关的最高键,但不会返回最高值本身,这是我希望实现的。
任何帮助,将不胜感激。
因此,您当前使用此行提取具有最高值的国家/地区的键:
country_w_highest_val = max(cc_GDP, key=lambda key: cc_GDP[key]))
您当然可以再次在字典中查找:
highest_val = cc_GDP[contry_w_highest_val]
但更简单的是,完全忽略键,只找到字典中所有值的最高值:
highest_val = max(cc_GDP.values())
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句