Python 如何根据字典的值(3个值的数组)对字典进行排序?
我有一本这样的字典:Python 如何根据字典的值(3个值的数组)对字典进行排序?,python,sorting,Python,Sorting,我有一本这样的字典: {'GBR': [0, 0, 1], 'TPE': [0, 1, 1], 'KOR': [3, 1, 0], 'CHN': [3, 1, 2], 'AUS': [0, 0, 1], 'UKR': [0, 0, 1], 'JPN': [0, 1, 0], 'ITA': [1, 0, 0]} 本词典中的值是由3个值组成的数组。我想在所有三个值中对它进行排序,其中索引0具有第一优先级,索引1具有第二优先级,索引2具有最终优先级 这就是我所期望的: [('CHN',
{'GBR': [0, 0, 1],
'TPE': [0, 1, 1],
'KOR': [3, 1, 0],
'CHN': [3, 1, 2],
'AUS': [0, 0, 1],
'UKR': [0, 0, 1],
'JPN': [0, 1, 0],
'ITA': [1, 0, 0]}
本词典中的值是由3个值组成的数组。我想在所有三个值中对它进行排序,其中索引0具有第一优先级,索引1具有第二优先级,索引2具有最终优先级
这就是我所期望的:
[('CHN', [3, 1, 2]),
('KOR', [3, 1, 0]),
('ITA', [1, 0, 0]),
('TPE', [0, 1, 1]),
('JPN', [0, 1, 0]),
('UKR', [0, 0, 1]),
('GBR', [0, 0, 1]),
('AUS', [0, 0, 1])]
如何使用排序功能执行此操作?我尝试过使用lambda
,但我想不出来。试试这个:
d={
“GBR”:[0,0,1],
“TPE”:[0,1,1],
“KOR”:[3,1,0],
‘CHN’:[3,1,2],
'AUS':[0,0,1],
“UKR”:[0,0,1],
“JPN”:[0,1,0],
'ITA':[1,0,0]}
已排序(d.items(),key=lambda x:x[1],reverse=True)
结果:
[('CHN', [3, 1, 2]), ('KOR', [3, 1, 0]), ('ITA', [1, 0, 0]), ('TPE', [0, 1, 1]), ('JPN', [0, 1, 0]), ('GBR', [0, 0, 1]), ('AUS', [0, 0, 1]), ('UKR', [0, 0, 1])]
这回答了你的问题吗?列表不是数组。无论如何,您所描述的正是列表是如何排序的,即按字典顺序排列的。所以只要按值排序。。。