k12*_*234 2 python sorting dictionary
我有一个字典,其中包含我想要排序的字符串键和int值.我希望它首先按减少数值排序,然后按字母顺序排序.
例如,如果你有一个字典包含:
my_dict = {'zebra':1, 'the':201, 'apple':1, 'chicken':58}
Run Code Online (Sandbox Code Playgroud)
生成的排序列表将包含:
{('the', 201), ('chicken', 58), ('apple', 1), ('zebra', 1)
Run Code Online (Sandbox Code Playgroud)
目前我正在使用以下内容:
my_list = sorted(my_dict.items(), key=lambda x: (x[1],x[0])
Run Code Online (Sandbox Code Playgroud)
我得到一个列表,先按升序排序,然后按字母顺序排序.
如何反转值而不是键?我知道你可以将第三个参数传递reverse=[boolean]给sorted()方法,但它要么反转BOTH键和值,要么反转.怎么可以只通过一次逆转排序?谢谢你的帮助!
只是否定该值并将其用作主键:
>>> 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)]
Run Code Online (Sandbox Code Playgroud)