gpt4 book ai didi

python - 按值和键对字典的内容进行排序

转载 作者:太空狗 更新时间:2023-10-30 02:34:39 24 4
gpt4 key购买 nike

根据值对字典的内容进行排序已经被彻底描述过,所以它可以通过这样的事情来实现:

d={'d':1,'b':2,'c':2,'a':3}
sorted_res_1= sorted(d.items(), key=lambda x: x[1])
# or
from operator import itemgetter
sorted_res_2 = sorted(d.items(), key=itemgetter(1))

我的问题是,实现以下输出的最佳方法是什么:

[('d', 1), ('b', 2), ('c', 2), ('a', 3)] 而不是 [('d', 1), ('c ', 2), ('b', 2), ('a', 3)]

如果值相等,则元组按值排序,然后按键排序。

其次 - 这是否有可能逆转:[('a', 3), ('b', 2), ('c', 2), ('d', 1)] 而不是 [('a', 3), ('c', 2 ), ('b', 2), ('d', 1)]?

最佳答案

sorted key 参数可以返回一个元组。在这种情况下,元组中的第一项用于对项进行排序,第二项用于打破平局,第三项用于平局,依此类推...

In [1]: import operator

In [2]: d={'d':1,'b':2,'c':2,'a':3}

In [3]: sorted(d.items(),key=operator.itemgetter(1,0))
Out[3]: [('d', 1), ('b', 2), ('c', 2), ('a', 3)]

operator.itemgetter(1,0) 返回由第二个项目和第一个项目形成的元组。也就是说,如果 f=operator.itemgetter(1,0) 那么 f(x) 返回 (x[1],x[0]).

关于python - 按值和键对字典的内容进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7076108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com