以下是我要排序的示例代码段
变量图书是一个包含值的字典。
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']))
当我编译代码时。我遇到了一个错误。的 '字典'对象没有属性'排序'
如何使用键'名称'
按值对图书进行排序答案 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)