简体   繁体   English

按降序排序以下字典列表

[英]Sort list of below dictionary in descending order

I have the below dictionary and i want sorted dictionary我有以下字典,我想要排序字典

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}]}

I want to sort value wise ie The document has highest value print first then lower and don't print 0 value document.我想对价值进行排序,即文档首先打印价值最高的文件,然后打印价值较低的文件,并且不打印价值为 0 的文件。

Here a solution:这里有一个解决方案:

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

Output: Output:

{'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}]}

This should solve your problem:-这应该可以解决您的问题:-

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)

Output:- Output:-

{'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}]
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM