我有一本看起来像这样的字典
`{'a':2,'b':3,'c':2}`
我需要从最大值开始打印键和值。期望的输出如下:
'b' 3
'a' 2
'c' 2
'a'和'c'的顺序不一定必须是字母顺序,重要的是首先打印最大值,依此类推。
我正在写python 3。
我试图使用旧值作为键创建一个新字典,反之亦然,但问题是我有几次相同的值。
有人可以帮助困惑的学生解决这个问题吗?
通过iteritems
方法将对象转换为列表,对其进行排序(这里有sortSec
自定义函数的帮助),然后在循环中打印:
def sort_sec(val):
return val[1]
input = {'a':2,'b':3,'c':2}
dictlist = []
for key, value in input.iteritems():
dictlist.append([key,value])
dictlist.sort(key=sort_sec, reverse=True)
for el in dictlist:
print(el[0] + ' ' + str(el[1]))
仅供记录,这是一个简单的解决方案:
dd = {'a':2,'b':3,'c':2}
ll = (zip(dd.values(), dd.keys()))
ll.sort(reverse=True) # Sorted by value
[(3, 'b'), (2, 'c'), (2, 'a')] # Print as needed