如何sortingOrderedDict OrderedDict – Python

我想通过'深度'键在OrderedDict中sortingOrderedDict。 有没有解决scheme来sorting字典?

OrderedDict([ (2, OrderedDict([ ('depth', 0), ('height', 51), ('width', 51), ('id', 100) ])), (1, OrderedDict([ ('depth', 2), ('height', 51), ('width', 51), ('id', 55) ])), (0, OrderedDict([ ('depth', 1), ('height', 51), ('width', 51), ('id', 48) ])), ]) 

sorting字典应该看起来像这样:

 OrderedDict([ (2, OrderedDict([ ('depth', 0), ('height', 51), ('width', 51), ('id', 100) ])), (0, OrderedDict([ ('depth', 1), ('height', 51), ('width', 51), ('id', 48) ])), (1, OrderedDict([ ('depth', 2), ('height', 51), ('width', 51), ('id', 55) ])), ]) 

任何想法如何得到它?

您必须创build一个新的OrderedDict按插入顺序sorting。

在你的情况下,代码将如下所示:

 foo = OrderedDict(sorted(foo.iteritems(), key=lambda x: x[1]['depth'])) 

有关更多示例,请参阅http://docs.python.org/dev/library/collections.html#ordereddict-examples-and-recipes

 >>> OrderedDict(sorted(od.items(), key=lambda item: item[1]['depth']))