我对Python相当陌生,所以如果这个问题看起来有点天真,我很抱歉。我正在为我的comp类做最后一个项目,它涉及到一些数据的可视化,但我遇到了一些困难。
基本上,我使用的是一个CSV文件(你可以找到这里),其中包含了每一个国家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]的方法)为他们建立索引,但这并不适用于字典。有什么解决办法吗,或者只是一个更好的方法?如有任何建议,将不胜感激。非常感谢!
发布于 2022-12-02 08:58:33
由于字典在默认情况下没有排序,也就是说,字典中键值对的位置没有任何意义,所以不能通过索引访问任何项。但是,可以将字典转换为元组列表,其中键是第一个元素,值是元组的第二个元素。然后,您可以编写代码,始终访问元组中的第二个元素(即位置1),并对这些值进行排序。
我希望我正确地理解了你的问题,这是有帮助的。:)
https://stackoverflow.com/questions/74636710
复制相似问题