如何在Python中按值对字典进行排序?

如何在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 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程