[英]Printing a dictionary based on the size of the values
我有一本看起来像这样的字典
`{'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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.