按降序排列下面字典的列表

2024-05-13 21:42:36 发布

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

我有下面的字典,我想要分类字典

dict1 = {'years': [{'doc_1': 1}, {'doc_2': 0}, {'doc_3': 0}], 'working': [{'doc_1': 1}, {'doc_2': 1}, {'doc_3': 0}],
     'experience': [{'doc_1': 1}, {'doc_2': 0}, {'doc_3': 0}], 'I': [{'doc_1': 1}, {'doc_2': 0}, {'doc_3': 0}],
     'T': [{'doc_1': 1}, {'doc_2': 0}, {'doc_3': 0}], 'associated': [{'doc_1': 1}, {'doc_2': 0}, {'doc_3': 0}],
     'different': [{'doc_1': 1}, {'doc_2': 1}, {'doc_3': 0}],
     'organizations': [{'doc_1': 1}, {'doc_2': 0}, {'doc_3': 0}],
     'His': [{'doc_1': 1}, {'doc_2': 0}, {'doc_3': 1}], 'work': [{'doc_1': 1}, {'doc_2': 0}, {'doc_3': 0}],
     'domain': [{'doc_1': 1}, {'doc_2': 1}, {'doc_3': 0}], 'area': [{'doc_1': 1}, {'doc_2': 0}, {'doc_3': 0}],
     'financial': [{'doc_1': 1}, {'doc_2': 1}, {'doc_3': 0}], 'Project': [{'doc_1': 0}, {'doc_2': 1}, {'doc_3': 0}],
     'Manager': [{'doc_1': 0}, {'doc_2': 1}, {'doc_3': 0}], 'He': [{'doc_1': 0}, {'doc_2': 1}, {'doc_3': 0}],
     'areas': [{'doc_1': 0}, {'doc_2': 1}, {'doc_3': 0}], 'major': [{'doc_1': 0}, {'doc_2': 1}, {'doc_3': 0}],
     'patient': [{'doc_1': 0}, {'doc_2': 2}, {'doc_3': 0}], 'billing': [{'doc_1': 0}, {'doc_2': 1}, {'doc_3': 0}],
     'assessments': [{'doc_1': 0}, {'doc_2': 1}, {'doc_3': 0}],
     'radiation': [{'doc_1': 0}, {'doc_2': 1}, {'doc_3': 0}],
     'endoscopy': [{'doc_1': 0}, {'doc_2': 1}, {'doc_3': 0}],
     'interest': [{'doc_1': 0}, {'doc_2': 0}, {'doc_3': 1}],
     'data': [{'doc_1': 0}, {'doc_2': 0}, {'doc_3': 3}], 'science': [{'doc_1': 0}, {'doc_2': 0}, {'doc_3': 2}],
     'favorite': [{'doc_1': 0}, {'doc_2': 0}, {'doc_3': 1}], 'book': [{'doc_1': 0}, {'doc_2': 0}, {'doc_3': 1}],
     'big': [{'doc_1': 0}, {'doc_2': 0}, {'doc_3': 1}]}

我想按值排序,即 文档具有最高值,先打印后打印较低值,不打印0值文档


Tags: 文档doc字典domain分类areaworkingwork
2条回答

这将解决您的问题:-

res = {}
for key, value in dict1.items():
    res[key] = [i for i in dict1[key] if 0 not in (i.values())]
    res[key] = sorted(res[key], key=lambda x : x[list(x.keys())[0]], reverse=True)

print(res)

输出:-

{'years': [{'doc_1': 1}], 'working': [{'doc_1': 1}, {'doc_2': 1}], 
 'experience': [{'doc_1': 1}], 'I': [{'doc_1': 1}], 'T': [{'doc_1': 1}], 
 'associated': [{'doc_1': 1}], 'different': [{'doc_1': 1}, {'doc_2': 1}], 
 'organizations': [{'doc_1': 1}], 'His': [{'doc_1': 1}, {'doc_3': 1}], 
 'work': [{'doc_1': 1}], 'domain': [{'doc_1': 1}, {'doc_2': 1}], 
 'area': [{'doc_1': 1}], 'financial': [{'doc_1': 1}, {'doc_2': 1}], 
 'Project': [{'doc_2': 1}], 'Manager': [{'doc_2': 1}], 'He': [{'doc_2': 1}], 
 'areas': [{'doc_2': 1}], 'major': [{'doc_2': 1}], 'patient': [{'doc_2': 2}], 
 'billing': [{'doc_2': 1}], 'assessments': [{'doc_2': 1}], 'radiation': [{'doc_2': 1}], 
 'endoscopy': [{'doc_2': 1}], 'interest': [{'doc_3': 1}], 'data': [{'doc_3': 3}], 
 'science': [{'doc_3': 2}], 'favorite': [{'doc_3': 1}], 'book': [{'doc_3': 1}], 
 'big': [{'doc_3': 1}]
}

这里有一个解决方案:

d = {}
for key,list_dict in dict1.items():
    d[key]  = sorted([k for k  in list_dict if list(k.items())[0][1] >0], key=lambda x: list(x.items())[0][1], reverse=True)

d

输出:

{'He': [{'doc_2': 1}],
 'His': [{'doc_1': 1}, {'doc_3': 1}],
 'I': [{'doc_1': 1}],
 'Manager': [{'doc_2': 1}],
 'Project': [{'doc_2': 1}],
 'T': [{'doc_1': 1}],
 'area': [{'doc_1': 1}],
 'areas': [{'doc_2': 1}],
 'assessments': [{'doc_2': 1}],
 'associated': [{'doc_1': 1}],
 'big': [{'doc_3': 1}],
 'billing': [{'doc_2': 1}],
 'book': [{'doc_3': 1}],
 'data': [{'doc_3': 3}],
 'different': [{'doc_1': 1}, {'doc_2': 1}],
 'domain': [{'doc_1': 1}, {'doc_2': 1}],
 'endoscopy': [{'doc_2': 1}],
 'experience': [{'doc_1': 1}],
 'favorite': [{'doc_3': 1}],
 'financial': [{'doc_1': 1}, {'doc_2': 1}],
 'interest': [{'doc_3': 1}],
 'major': [{'doc_2': 1}],
 'organizations': [{'doc_1': 1}],
 'patient': [{'doc_2': 2}],
 'radiation': [{'doc_2': 1}],
 'science': [{'doc_3': 2}],
 'work': [{'doc_1': 1}],
 'working': [{'doc_1': 1}, {'doc_2': 1}],
 'years': [{'doc_1': 1}]}

相关问题 更多 >