2013-03-06 161 views
5

我有一个字典d = {'a': '1', 'c': '10', 'b': '8', 'e': '11', 'g': '3', 'f': '2'}。我想对数字值为d.values()的字典进行排序。必填ans是['a','f', 'g', 'b', 'c', 'e']。我检查了here。我无法根据d.values()的整数值进行排序。按字典的数值排序字典

回答

12
>>> d = {'a': '1', 'c': '10', 'b': '8', 'e': '11', 'g': '3', 'f': '2'} 
>>> sorted(d, key=lambda i: int(d[i])) 
['a', 'f', 'g', 'b', 'c', 'e'] 
0

这是因为您的字典中的值的类型为string:请注意数字周围的引号。尝试设置您的字典为:

d = {'a':1, 'c':10, 'b':8, 'e':11, 'g':3, 'f':2}