1
我想排序我的字典递减。Python字典递减排序
dic = { "one" = 5, "two" = 8, "three" = 1, "four" = 3}
输出应该是:
("two", 8)
("one", 5)
("four", 3)
("three", 1)
什么是最简单的方法是什么?
我想排序我的字典递减。Python字典递减排序
dic = { "one" = 5, "two" = 8, "three" = 1, "four" = 3}
输出应该是:
("two", 8)
("one", 5)
("four", 3)
("three", 1)
什么是最简单的方法是什么?
sorted
支持关键字reverse
。将其设置为True
以获得颠倒的排序顺序。
>>> dic = {"one": 5, "two": 8, "three": 1, "four": 3}
一种方式:
>>> [(k, dic[k]) for k in sorted(dic, key=dic.get, reverse=True)]
[('two', 8), ('one', 5), ('four', 3), ('three', 1)]
或:
>>> from operator import itemgetter
>>> sorted(dic.items(), key=itemgetter(1), reverse=True)
[('two', 8), ('one', 5), ('four', 3), ('three', 1)]
这里itemgetter(1)
确实相同lambda x: x[1]
,这又相当于:
def get_index_one(x):
return x[1]
即
>>> sorted(dic.items(), key=get_index_one, reverse=True)
[('two', 8), ('one', 5), ('four', 3), ('three', 1)]
稍微不同的方式:
>>> dic = { "one" : 5, "two" : 8, "three" : 1, "four" : 3}
>>> sorted(dic.items(), key = lambda x:x[1],reverse = True)
[('two', 8), ('one', 5), ('four', 3), ('three', 1)]
我想与此代码做到这一点:对于项排序(dic.items(),键=拉姆达X:X [1]):但是我不能把它弄干,这样我才能把我的字典排序DECREASING – Python123
字典建筑是不对的。它应该是:'dic = {“one”:5,“two”:8,“three”:1,“four”:3}' – kmonsoor
btw这个问题看起来像是一个班级作业。没有显示研究工作。 – kmonsoor