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

ds97pgxw  于 2022-12-02  发布在  Python
关注(0)|答案(1)|浏览(151)

我是Python的新手,所以如果这个问题看起来有点幼稚,我道歉。我正在为我的comp sci类做一个最终项目,涉及到可视化一些数据,但是我在做的时候遇到了一些困难。
基本上,我使用的是一个CSV文件(您可以找到here),其中包含每个国家在29年期间报告的排放数据--但我只想可视化每个给定年份前五个排放国家的数据。

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]),但是这在字典中不起作用。有没有解决这个问题的方法,或者更好的方法?任何建议都将受到感谢。非常感谢!

luaexgnf

luaexgnf1#

因为字典在默认情况下是不排序的,也就是说,字典中键-值对的位置没有任何意义,所以不能通过索引访问任何项。但是,可以将字典转换为元组列表,其中键是元组的第一个元素,值是元组的第二个元素。然后,可以编写代码来始终访问元组中的第二个元素(即,在位置[1])并对这些值进行排序。
我希望我正确地理解了你的问题,这对我有帮助

相关问题