我想对在嵌套循环中生成的字典进行自定义排序。我知道永远会有 5 条记录,但根据我浏览的数据,可能还有其他记录。我基本上想要这五个记录以特定顺序排列,然后顺序对于这五个之后的所有记录都无关紧要。
例如,我想要这个:
{"Entries": [], "Groups": [], "Admin": [], "Network": [], "XYZ": [], "Subnets": []}
排序为:
{"Admin": [], "Groups": [], "Network": [], "Subnets": [], "Entries": [], "XYZ": []}
因此,Admin、Groups、Network、Subnets 和 Entries 是我希望在字典开头按特定顺序排列的五个条目,之后其余条目的顺序无关紧要。我该怎么做?
请您参考如下方法:
你首先需要
- 通过获取项目列表创建(键,值)对列表
- 自定义排序生成的列表
- 根据排序结果创建OrderedDict
这是一个例子,我根据键的长度对你的数据进行排序
>>> from collections import OrderedDict
>>> some_dict = {"Entries": [], "Groups": [], "Admin": [], "Network": [], "XYZ": [], "Subnets": []}
>>> some_dict = OrderedDict(sorted(some_dict.items(),key = lambda e:len(e[0])))
>>> some_dict
OrderedDict([('XYZ', []), ('Admin', []), ('Groups', []), ('Subnets', []), ('Network', []), ('Entries', [])])
