python - 如何按字典的值排序字典,它是一个由 3 个值组成的数组?
问题描述
我有一本这样的字典:
{'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])]
如何使用该sort
功能执行此操作?我试过使用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]}
sorted(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])]
推荐阅读
- android - Firebase dynamic link: can`t create short link
- unity3d - 如何通过单击不拖动对象在场景视图中的鼠标点处创建对象?
- javascript - 缓存存储不完整
- node.js - 续集将所有表字段更改为蛇案例
- asp.net - 如何在 ASP.NET CORE Razor Pages 中创建共享表单?
- php - Laravel- Why do I get a parse error when writing HTML inside an @if in a blade.php file?
- angular - 如何在 Angular 中使用 Jasmine 正确单元测试 API 服务的抛出错误?
- php - 如何在 Drupal 8 中正确使用 hook_insert
- python - Pandas - 从正态分布中选择值填充缺失值
- python - 如何将字符串添加到列表中的某些项目?