Python sort dict by last time changing value
我正在为网站写信使。
所以,我有一些功能序列。
首先是
1 2 3 4 | def get_messages(self): """select query""" messages = self.model.load(['or', ('sender', self.my_id), ('receiver', self.my_id)]) return messages |
返回数据库表中包含消息的所有记录,其中我是消息的发送者或接收者。
下一个功能是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | def get_dialogs(self): """returns dialogs of curr user""" dialogs = {} for msg in self.messages: if msg['receiver'] != self.my_id: tmp_d = msg['receiver'] else: tmp_d = msg['sender'] if tmp_d not in dialogs.keys(): dialogs[tmp_d] = [msg] else: dialogs[tmp_d].append(msg) return dialogs |
在这里,我正在准备dict,其中key是与我交谈的用户。
问题出现了。
这是消息序列的屏幕截图。
我希望dict键序列将按添加到值列表的最后一条消息进行序列排序。
在这里,我没有对它进行排序,实际上有一个问题(我无法理解的问题) - 默认的键序列应该是
主要问题
如何在上次更改值时对dict键进行排序(或者排序后才能知道dict无法排序)?
Python中的
请考虑使用标准库中的
你可以结帐
1 2 3 4 5 6 7 8 9 10 | >>> d['a']=0; d['b']=1; d['c']=2 # make three updates >>> d RevisionDict([_Item(key='a', value=0, revision=1), _Item(key='b', value=1, revision=2), _Item(key='c', value=2, revision=3)]) >>> d['a']=3 # update value of 'b' (was 2 before) >>> d RevisionDict([_Item(key='b', value=1, revision=2), _Item(key='c', value=2, revision=3), _Item(key='a', value=3, revision=4)]) |
披露:我是该图书馆的作者。