Skip to main content
 首页 » 编程设计

python之在 Python 中对字典进行自定义排序

2025年05月04日14yyy_WW

我想对在嵌套循环中生成的字典进行自定义排序。我知道永远会有 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', [])])