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

时间:2017-08-26 08:16:02

标签: python-2.7 sorting dictionary

以下是我要排序的示例代码段

变量图书是一个包含值的字典。

books =  {
     1234 : {
      'isbn' : '1234',
      'name' : 'Test Book 1',
      'publish' : 'January 1990'
    },
     2345 : {
      'isbn' : '2345',
      'name' : 'Sample Book',
      'publish' : 'December 2000'
    }

}

for key, values in books.items():
    values.sort(key=lambda x: int(x['name']))

当我编译代码时。我遇到了一个错误。的 '字典'对象没有属性'排序'

如何使用键'名称'

按值对图书进行排序

1 个答案:

答案 0 :(得分:0)

您需要在图书中创建 OrderedDict ,这是一个跟踪广告订单顺序的字典(如列表)。该模块是dict的子类,具有排序功能。然后你可以使用

>>> OrderedDict(sorted(books.items(), key=lambda x: x[1]))
OrderedDict([(1234, {'isbn': '1234', 'name': 'Test Book 1', 'publish': 'January 1990'}), (2345, {'isbn': '2345', 'name': 'Sample Book', 'publish': 'December 2000'})])

如果你不需要它作为一个字典,你可以使用已排序的函数并有元组列表(在项目中有dicts)