【发布时间】:2021-10-20 21:08:03
【问题描述】:
有字典:
{'david': ['APP', 2], 'ala': ['PROD', 2], 'steven': ['DEV', 4], 'katya': ['SYS', 2]}
我想通过优先考虑列表的第二个元素(降序)然后按列表的第一个元素(升序)对其进行排序。 我想要的输出是:
>>> [('steven', ['DEV', 4]), ('david': ['APP', 2]), ('ala': ['PROD', 2]), ('katya': ['SYS', 2])]
我的最佳想法:
x = sorted(x.items(), key=lambda elem: elem[1][1], reverse=True)
x.sort(key=lambda elem: elem[1][0])
>>> [('david', ['APP', 2]), ('steven', ['DEV', 4]), ('ala', ['PROD', 2]), ('katya', ['SYS', 2])]
核心 python 中是否有任何函数或方法可以考虑对同一个对象进行排序并优先考虑值,在我的情况下,如果数字(数字按降序排序)相等,则查看诸如 'APP'、' 之类的字符串DEV'... 并按字符串升序排序?
【问题讨论】:
-
这能回答你的问题吗? Sorting a Python list by two fields