【发布时间】:2015-10-29 16:40:19
【问题描述】:
我正在尝试对字典进行排序,并且查看了许多示例,但它们都显示了非常简单的字典。我查看了orderedDict、itemgetter、lambda 等,但我看不到如何按位置、homepoints 或 awaypoints 对这个字典进行排序:
{
u'SwanseaCityFC': {
'position': 12,
'awayPoints': 7,
'homePoints': 8
},
u'TottenhamHotspurFC': {
'position': 6,
'awayPoints': 11,
'homePoints': 9
},
u'StokeCityFC': {
'position': 14,
'awayPoints': 9,
'homePoints': 4
},
u'AstonVillaFC': {
'position': 20,
'awayPoints': 4,
'homePoints': 1
},
u'ManchesterCityFC': {
'position': 1,
'awayPoints': 10,
'homePoints': 12
},
u'AFCBournemouth': {
'position': 17,
'awayPoints': 5,
'homePoints': 5
},
u'CrystalPalaceFC': {
'position': 7,
'awayPoints': 9,
'homePoints': 6
},
u'NewcastleUnitedFC': {
'position': 19,
'awayPoints': 3,
'homePoints': 5
},
u'NorwichCityFC': {
'position': 16,
'awayPoints': 6,
'homePoints': 4
},
u'WatfordFC': {
'position': 13,
'awayPoints': 10,
'homePoints': 5
},
u'ManchesterUnitedFC': {
'position': 4,
'awayPoints': 11,
'homePoints': 11
},
u'LeicesterCityFC': {
'position': 5,
'awayPoints': 10,
'homePoints': 10
},
u'ChelseaFC': {
'position': 15,
'awayPoints': 5,
'homePoints': 7
},
u'WestHamUnitedFC': {
'position': 3,
'awayPoints': 14,
'homePoints': 7
},
u'SunderlandAFC': {
'position': 18,
'awayPoints': 3,
'homePoints': 5
},
u'SouthamptonFC': {
'position': 8,
'awayPoints': 8,
'homePoints': 7
},
u'EvertonFC': {
'position': 11,
'awayPoints': 10,
'homePoints': 5
},
u'LiverpoolFC': {
'position': 9,
'awayPoints': 8,
'homePoints': 8
},
u'ArsenalFC': {
'position': 2,
'awayPoints': 13,
'homePoints': 10
},
u'WestBromwichAlbionFC': {
'position': 10,
'awayPoints': 11,
'homePoints': 4
}
}
任何帮助表示赞赏!
【问题讨论】:
-
dicts 不保留任何排序,因此您需要构建一个列表或使用 OrderedDict 来维护元素的顺序。将元素整理好需要一个关键功能。我认为这里有一些很好的例子:wiki.python.org/moin/HowTo/Sorting -
This 没有解决你的问题?!
-
Python dict 数据结构没有内在的顺序。也许你应该考虑一个数据框(Pandas)类型的结构。
标签: python sorting dictionary