我有一个像
这样的词典tel = {'jack': 18, 'sape': 4139, 'sar': 2139, 'mape': 319, 'sipe': 29}
我想根据值降序排序,如
tel = {'sape': 4139, 'sar': 2139, 'mape': 319, 'sipe': 29 'jack': 18}
我搜索了很多,发现了无关的结果。那里有内置功能还是其他任何方式。请帮忙。任何帮助将不胜感激
答案 0 :(得分:3)
无法订购dict
。要么使用有序字典,要么使用其他有序序列。
sorted(tel.iteritems(), key=operator.itemgetter(1), reverse=True)
答案 1 :(得分:3)
在python 2.7或3.1中,您可以使用OrderedDict:
from collections import OrderedDict
from operator import itemgetter
tel = {'jack': 18, 'sape': 4139, 'sar': 2139, 'mape': 319, 'sipe': 29}
newtel = OrderedDict(sorted(tel.items(), key=itemgetter(1), reverse=True))
更多示例可以在What's New doc。
中找到 编辑:现在使用itemgetter而不是lambda来取悦那些关心的人。向那些发现旧方式更清楚的人道歉。答案 2 :(得分:1)
import operator
sorted(my_dict.iteritems(), key=operator.itemgetter(1))
可以是usefull。