在给定的任意词中对词典列表进行排序

2024-10-04 01:26:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份字典清单。 说

[{'name':'Homer', 'age':39, 'desg':'A'}, {'name':'Bart', 'age':10, 'desg':'A'},
{'name':'Lucy', 'age':27, 'desg':'C'}, {'name':'John', 'age':18, 'desg':'B'},
{'name':'Aryan', 'age':20, 'desg':'C'}]

我想用desg按A,C,B的顺序对这个列表排序。你知道吗

我可以通过sorted(list, lambda x: x['desg'])A,B,C中对它进行排序,并使用reverse=True标志对它进行反向排序,但无法按照上述模式对它进行排序。你知道吗


Tags: lambdaname列表age字典排序顺序john
1条回答
网友
1楼 · 发布于 2024-10-04 01:26:07

首先,定义键的顺序:

order = {'A':0, 'B':2, 'C':1}

现在,按顺序排序:

sorted(l, key=lambda x:order[x['desg']])
#[{'name': 'Homer', 'age': 39, 'desg': 'A'}, 
# {'name': 'Bart', 'age': 10, 'desg': 'A'}, 
# {'name': 'Lucy', 'age': 27, 'desg': 'C'}, 
# {'name': 'Aryan', 'age': 20, 'desg': 'C'}, 
# {'name': 'John', 'age': 18, 'desg': 'B'}]

相关问题 更多 >