python - 按 REVERSE VALUE 然后按 NON-REVERSE KEY 对字典进行排序

标签 python sorting dictionary

我有一个字典,其中包含要排序的字符串键和 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/

相关文章:

python - 索引错误 : shape mismatch: indexing arrays could not be broadcast together with shapes

python - 如何使用python将NPZ文件转换为文本文件

python - 尝试从 Caffe 中的 channel 均值中减去时获取 "ValueError: operands could not be broadcast together with shapes"

c++ - 我的比较功能有什么问题?

c# - 使用任何数据列对数据行进行排序

java - 使用 JSP 访问封装在 Map 内的对象的 getter 方法

python - 如何将列添加到 ndarray?

arrays - Excel VBA 按降序对数字数组进行排序的最快方法?

PHP/MYSQL 替换字典数组中键的文本

javascript - 如何在 JavaScript Map 中的一个键上 "push"多个值