gpt4 book ai didi

python - 在python中按值对defaultdict进行排序

转载 作者:IT老高 更新时间:2023-10-28 20:57:41 32 4
gpt4 key购买 nike

我有一个类似这样的数据结构:

三个城市不同年份的人口如下。

Name  1990 2000 2010
A 10 20 30
B 20 30 10
C 30 10 20

我正在使用 defaultdict 来存储数据。

from collections import defaultdict
cityPopulation=defaultdict(list)
cityPopulation['A']=[10,20,30]
cityPopulation['B']=[20,30,10]
cityPopulation['C']=[30,10,20]

我想根据列表的特定列(年份)对 defaultdict 进行排序。比如说,1990 年的排序应该给出 C,B,A,而 2010 年的排序应该给出 A,C,B

另外,这是存储数据的最佳方式吗?当我改变人口值时,我希望它是可变的。

最佳答案

>>> sorted(cityPopulation.iteritems(),key=lambda (k,v): v[0],reverse=True) #1990
[('C', [30, 10, 20]), ('B', [20, 30, 10]), ('A', [10, 20, 30])]
>>> sorted(cityPopulation.iteritems(),key=lambda (k,v): v[2],reverse=True) #2010
[('A', [10, 20, 30]), ('C', [30, 10, 20]), ('B', [20, 30, 10])]

注意在 python 3 中你不能自动解压 lambda 参数,所以你必须更改代码

sorted(cityPopulation.items(), key=lambda k_v: k_v[1][2], reverse=True) #2010

关于python - 在python中按值对defaultdict进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10194713/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com