为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥9229398 2022-11-29 15:51:33
我有下面的字典,我想要排序的字典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 价值文档。
查看完整描述

2 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

这里有一个解决方案:


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


查看完整回答
反对 回复 2022-11-29
?
萧十郎

TA贡献1815条经验 获得超13个赞

这应该可以解决您的问题:-


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

}


查看完整回答
反对 回复 2022-11-29
  • 2 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号