Python Max函数在字典中查找最高值

2024-04-24 22:25:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是如何使用max函数在字典中找到最大值。你知道吗

我创建了一个如下所示的词典:

cc_GDP = {'af': 1243738953, 'as': 343435646, etc}

我希望能够简单地找到并打印每个国家的最高GDP值。你知道吗

阅读类似问题后,我的最佳尝试如下所示(我目前正在阅读Python速成课程手册,在这本书中学习了这段代码的基础,请注意get\u country\u code函数只是为GDP\u data 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'

注意:如果在print函数中省略[1],这将提供与最高值相关的最高键,但不会返回我希望实现的最高值本身。你知道吗

任何帮助都将不胜感激。你知道吗


Tags: key函数jsondatagetascode国家
3条回答

这样怎么样:

print max(cc_GDP.values())

这将给你最高的价值,但不是关键。你知道吗

这个错误是因为你需要查看整个字典,而不仅仅是一个条目。删除[1],然后使用以下行:

print(cc_GDP[max(cc_GDP, key=lambda key: cc_GDP[key])])

您的代码当前只返回字典键。你需要把这把钥匙插回字典里才能得到GDP。你知道吗

因此,您当前使用此行提取具有最高值的国家/地区的密钥:

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())

相关问题 更多 >