Skip to main content
 首页 » 编程设计

python之如何通过 2 个键对字典列表进行排序,其中一个键基于任意列表

2025年05月04日12lonelyxmas

我正在使用 python。 我如何先按“天”然后按“工作”对下面的词典列表进行排序。
'job' 的排序需要基于 priority_list(不是按字母顺序):

priority_list= ['c','a','b'] 
 
my_list_of_dicts = [ 
{'day':5,'job':'c','irrelevant_key':'more stuff'}, 
{'day':1,'job':'a','irrelevant_key':'stuff'}, 
{'day':5,'job':'b','irrelevant_key':'more stuff'}, 
{'day':1,'job':'b','irrelevant_key':'other stuff'} 
] 

排序结果应该是:

[{'day':1,'job':'a','irrelevant_key':'stuff'}, 
{'day':1,'job':'b','irrelevant_key':'other stuff'}, 
{'day':5,'job':'c','irrelevant_key':'more stuff'}, 
{'day':5,'job':'b','irrelevant_key':'more stuff'}] 

非常感谢,

请您参考如下方法:

my_list_of_dicts.sort(key=lambda x: (x['day'], priority_list.index(x['job'])))