Python嵌套dict前N个值具有最高置信度

时间:2016-11-02 20:28:12

标签: python dictionary highest

我有一个dict,看起来像这样:

{ 
"name1" : { "title":"someTitle", "confidence" : 0.765 },
"name2" : { "title":"someTitle2", "confidence" : 0.9343 },
"name3" : { "title":"someTitle3", "confidence" : 0.0031 },
"name4" : { "title":"someTitle4", "confidence" : 0.23 },
"name5" : { "title":"someTitle5", "confidence" : 0.8768 }
}

在这样的词典中,我需要创建另一个类似的词典,只包含具有最高置信度值的值。在这种情况下应该是:name2,name5,name1。

{ 
"name1" : { "title":"someTitle", "confidence" : 0.765 },
"name2" : { "title":"someTitle2", "confidence" : 0.9343 },
"name5" : { "title":"someTitle5", "confidence" : 0.8768 }
}

应保留Dict结构和内容。

谢谢!

2 个答案:

答案 0 :(得分:7)

dict(sorted(d1.items(), key=lambda item: item[1]['confidence'])[-3:])

答案 1 :(得分:0)

如果您的初始字典存储为变量d

d_new = {name: x for name, x in d.iteritems() if x['confidence']>=.765}