假设我有以下 Python 列表(这只是一个示例):
很遗憾,字符串不能为负数 :-|
我需要一个通用解决方案,不涉及“reverse=True”。Lambda函数是基于用户配置动态生成的。
有什么想法吗?
my_list = [{'user': 'Joe', 'score': 14},
{'user': 'Foo', 'score': 12},
{'user': 'May', 'score': 12},
{'user': 'Kat', 'score': 12},
{'user': 'Doe', 'score': 13}]
我需要将这个列表按照得分升序和用户名降序排序。 期望的排序结果:
my_list = [{'user': 'May', 'score': 12},
{'user': 'Kat', 'score': 12},
{'user': 'Foo', 'score': 12},
{'user': 'Doe', 'score': 13},
{'user': 'Joe', 'score': 14}]
如果我想让所有内容按升序排列,可以这样做:
my_list.sort(key=lambda x: (x['score'], x['user']))
对于整数,解决这个问题很容易,只需在其前面添加-
:
my_list.sort(key=lambda x: (-x['score'], x['user']))
很遗憾,字符串不能为负数 :-|
我需要一个通用解决方案,不涉及“reverse=True”。Lambda函数是基于用户配置动态生成的。
有什么想法吗?