如何对OrderedDict中的OrderedDict进行排序?
我想按照'depth'这个键来对OrderedDict里的内容进行排序。有没有什么办法可以对这个字典进行排序呢?
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)
])),
])
排序后的字典应该是这样的:
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)
])),
])
有没有什么想法可以实现这个呢?
3 个回答
5
有时候你可能想保留最开始的字典,而不是创建一个新的。
在这种情况下,你可以这样做:
temp = sorted(list(foo.items()), key=lambda x: x[1]['depth'])
foo.clear()
foo.update(temp)
21
当然可以!请看下面的内容:
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当用户点击一个按钮时,程序就要做出反应。这种反应通常是通过“事件”来实现的。
事件就像是程序中的一个信号,告诉它某件事情发生了。比如,用户点击了鼠标、按下了键盘,或者页面加载完成等。程序会监听这些事件,并在事件发生时执行相应的代码。
为了让程序能够正确地处理这些事件,我们需要定义一些“事件处理函数”。这些函数就像是程序的助手,当事件发生时,它们会被调用,执行我们预先设定好的操作。
总的来说,事件和事件处理函数是让程序与用户互动的重要部分。通过合理使用它们,我们可以让程序变得更加智能和友好。
希望这个解释能帮助你更好地理解事件的概念!
>>> OrderedDict(sorted(od.items(), key=lambda item: item[1]['depth']))
119
你需要创建一个新的,因为 OrderedDict
是按照插入的顺序来排序的。
在你的情况下,代码看起来会像这样:
foo = OrderedDict(sorted(foo.items(), key=lambda x: x[1]['depth']))
想要更多示例,可以查看 这个链接。
注意,如果你使用的是 Python 2,你需要用 .iteritems()
代替 .items()
。