我必须按值对字典排序并返回一个字符串。

d = {'K': 1000, 'M': 1200, 'R': 600, 'T': 400}
s = sorted(d, key=d.get, reverse=True)

我得到:
['M', 'K', 'R', 'T']

如何在此表单中返回具有值的键?
 1. M: 1200
 2. K: 1000
 3. R: 600
 4. T: 400

最佳答案

你必须带着这些值。在这种情况下,根据值进行排序,只需:

d = {'K': 1000, 'M': 1200, 'R': 600, 'T': 400}
s = sorted(d.items(), key=lambda x : x[1], reverse=True)

print(s)

结果:
[('M', 1200), ('K', 1000), ('R', 600), ('T', 400)]

对于显示,从enumerate开始对排序的项使用1,它在i,(k,v)中展开(i是索引,kv是dict的键/值)
for i,(k,v) in enumerate(sorted(d.items(), key=lambda x : x[1], reverse=True),1):
    print("{}. {}: {}".format(i,k,v))

印刷品:
1. M: 1200
2. K: 1000
3. R: 600
4. T: 400

关于python - 排序字典并创建一个字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46864859/

10-12 18:14