如何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']))