我有一个字典,其中包含要排序的字符串键和 int 值。我希望它首先按递减值编号排序,然后按字母顺序排序。
例如,如果您有一个包含以下内容的字典:
my_dict = {'zebra':1, 'the':201, 'apple':1, 'chicken':58}
生成的排序列表将包含:
{('the', 201), ('chicken', 58), ('apple', 1), ('zebra', 1)
目前我正在使用以下内容:
my_list = sorted(my_dict.items(), key=lambda x: (x[1],x[0])
我得到一个列表,首先按值升序排序,然后按字母顺序排序。
如何反转值而不是键?我知道您可以将第三个参数 reverse=[boolean]
传递给 sorted()
方法,但它会或不会同时反转键和值。怎么能只按一次反转排序呢?感谢您的帮助!
最佳答案
只需取反该值并将其用作主键:
>>> my_dict = {'zebra':1, 'the':201, 'apple':1, 'chicken':58}
>>> sorted(my_dict.items(), key=lambda x: (-x[1], x[0]))
[('the', 201), ('chicken', 58), ('apple', 1), ('zebra', 1)]
关于python - 按 REVERSE VALUE 然后按 NON-REVERSE KEY 对字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37637903/