我有以下字典,带有嵌套的字典“情感”:
我正在尝试找到一种简单的方法来返回具有最大2个“信心”值的前2个“情感”类型(在此dict中,它是“ CONFUSED”和“ ANGRY”
[
{
"AgeRange": {
"High": 52,
"Low": 36
},
"Emotions": [
{
"Confidence": 22.537073135375977,
"Type": "ANGRY"
},
{
"Confidence": 1.3983955383300781,
"Type": "SAD"
},
{
"Confidence": 1.2260702848434448,
"Type": "DISGUSTED"
},
{
"Confidence": 2.291703939437866,
"Type": "FEAR"
},
{
"Confidence": 8.114240646362305,
"Type": "HAPPY"
},
{
"Confidence": 10.546235084533691,
"Type": "SURPRISED"
},
{
"Confidence": 18.409439086914062,
"Type": "CALM"
},
{
"Confidence": 35.47684097290039,
"Type": "CONFUSED"
}
],
}
]
我已经尝试过类似dictmax = max(dict [Emotions] [Confidence] key = dict.get)的事情,但这似乎没有用,我很茫然。我觉得应该有一种简单的方法来根据Confidence的值只检索Type。
问题来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
你可以试试看
for d in my_list:
out=sorted(d['Emotions'],key=lambda x:x['Confidence'],reverse=True)[:2]
*
[{'Confidence': 35.47684097290039, 'Type': 'CONFUSED'}, {'Confidence': 22.537073135375977, 'Type': 'ANGRY'}] *您也可以使用nlargest
。 from heapq import nlargest for d in a: out=nlargest(2,d['Emotions'],key=lambda x:x['Confidence'])
回答来源:stackoverflow