首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以根据位置而不是特定的键在Python字典中选择多个元素吗?

我可以根据位置而不是特定的键在Python字典中选择多个元素吗?
EN

Stack Overflow用户
提问于 2022-12-01 03:41:25
回答 1查看 44关注 0票数 0

我对Python相当陌生,所以如果这个问题看起来有点天真,我很抱歉。我正在为我的comp类做最后一个项目,它涉及到一些数据的可视化,但我遇到了一些困难。

基本上,我使用的是一个CSV文件(你可以找到这里),其中包含了每一个国家29年的报告排放数据--但我只想可视化来自前五个排放国的数据。我的代码现在看起来如下:

代码语言:javascript
复制
counter = 0
for i in range(30):

    global_emissions = {}

    for country in dataset: 
     '''dataset is a list of country-specific dictionaries; a key value for every year (e.g. '1991') corresponds to a float representing CO2 emissions in kt.''' 
        key = str(1990 + counter)
        emissions = country[key]

        global_emissions[country['COUNTRY']] = emissions

        sorted_emissions = {}

        for i in sorted(global_emissions.values()): # this loop is just here to match keys to sorted values
            for k in global_emissions.keys():
                if global_emissions[k] == i:
                    sorted_emissions[k] = global_emissions[k]

    counter += 1

然后,任意给定年份的sorted_emissions列表按值的升序以一组键值对的形式出现。最后是污染最严重的国家。例如,1990年的情况如下:

...'Germany': 955310.0, 'Japan': 1090530.0, 'Russian Federation': 2163530.0, 'China': 2173360.0, 'United States': 4844520.0}

对于所有29年产生的字典,我想分离出最后的五种元素--但由于污染最严重的国家的钥匙会年复一年地变化,我不能仅仅凭它们的钥匙来访问它们。

我试着用数字切片(也就是尝试类似于sorted_emissions[-1]的方法)为他们建立索引,但这并不适用于字典。有什么解决办法吗,或者只是一个更好的方法?如有任何建议,将不胜感激。非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2022-12-02 08:58:33

由于字典在默认情况下没有排序,也就是说,字典中键值对的位置没有任何意义,所以不能通过索引访问任何项。但是,可以将字典转换为元组列表,其中键是第一个元素,值是元组的第二个元素。然后,您可以编写代码,始终访问元组中的第二个元素(即位置1),并对这些值进行排序。

我希望我正确地理解了你的问题,这是有帮助的。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74636710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档