字典的Python排序列表

泰什

我有一个字典列表,如下所示,

x = [
   {"matches_count": 10, distance: 50},
   {"matches_count": 20, distance: 50},
   {"matches_count": 1, "distance: 20},
   {"matches_count": 2, "distance": 20},
   {"matches_count": 5, "distance: 30},
]

我需要像下面这样排序

x = [
  {"matches_count": 2, distance: 20},
  {"matches_count": 1, "distance: 20},
  {"matches_count": 5, "distance: 30},
  {"matches_count": 20, distance: 50},
  {"matches_count": 10, "distance": 50} 
]

基本上,这应该同时使用距离matches_count进行排序当距离相同时,最高匹配计数应该排在第一位。有没有可能用sorted方法做到这一点或者有没有其他方法可以执行此操作?

我已经检查了以下问题,但我无法从他们那里获得有关我的问题的正确见解。按具有不同顺序的多个键对字典列表进行排序

U11-前进

您可以使用该sorted功能:

print(sorted(x, key=lambda a: (a['distance'], -a['matches_count'])))

输出:

[{'matches_count': 2, 'distance': 20}, {'matches_count': 1, 'distance': 20}, {'matches_count': 5, 'distance': 30}, {'matches_count': 20, 'distance': 50}, {'matches_count': 10, 'distance': 50}]

这首先distance按键排序,如果相同,则按 的负数排序matches_count我把它设为负数,所以它按降序而不是升序排序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章