如何在Python中按值对字典进行排序?
Python的标准分发包含collections模块。它定义了高性能容器数据类型。OrderedDict是字典的子类,它记住字典对象中添加的项目的顺序。当在有序字典上迭代时,项按照其键最初添加的顺序返回。
>>> from collections import OrderedDict
>>> D = {5:'fff',3:'ttt',1:'ooo',4:'bbb',2:'ddd'}
>>> OrderedDict(D.items())
OrderedDict([(5,'fff'),(3,'ttt'),(1,'ooo'),(4,'bbb'),(2,'ddd'))
我们还需要使用sorted()函数,按指定顺序排序可迭代元素。该函数需要一个函数作为参数,用于排序的键。由于我们打算按值对字典进行排序,所以我们将元组的第一个元素作为排序键。
>>> OrderedDict(sorted(D.items(),key = lambda t: t[1]))
OrderedDict([(4,'bbb'),(2,'ddd'),(5,'fff'),(1,'ooo'),(3,'ttt')])
OrderedDict对象可以解析为普通字典对象
>>> D1 = dict(OrderedDict(sorted(D.items(), key = lambda t: t[1])))
>>> D1
{4:'bbb',2:'ddd',5:'fff',1:'ooo',3:'ttt'}
阅读更多:Python 教程
极客教程