gpt4 book ai didi

Python:按值对嵌套字典进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:56 24 4
gpt4 key购买 nike

我正在使用一本大字典(500多个键),它的值有2个字典(其值是数字)和两个列表(其中一个长度=~10的数字,一个长度=~的 bool 值) 50)。我想获得某种表示形式,无论是列表还是元组,它都可以按内部字典之一内的数值之一对原始字典进行排序。有没有办法做到这一点?

作为引用,这里是我正在使用的(大)字典中键“WHR”的单个条目:

dd_rf['WHR'] = {'counts': {'num': 81.0,
'numClassCorrect': 64,
'numClassDown': 20,
'numClassDownCorrect': 20,
'numClassIncorrect': 17.0,
'numClassUp': 61,
'numClassUpCorrect': 44,
'numDown': 37,
'numUp': 44},
'imp': array([ 0.50924113, 0.06348138, 0.07851569, 0.03005051, 0.04103215,
0.05646218, 0.03682958, 0.03642228, 0.04282599, 0.01439416,
0.03090185, 0.0598431 ]),
'rates': {'correctDownRate': 1.0,
'correctRate': 0.7901234567901234,
'correctUpRate': 0.7213114754098361,
'downRate': 0.4567901234567901,
'upRate': 0.5432098765432098},
'results': array([False, False, True, True, True, True, False, False, True,
False, True, True, False, False, True, False, True, True,
True, True, True, True, True, True, True, False, False,
True, True, True, True, True, True, True, True, True,
True, False, True, False, False, True, True, True, True,
True, True, True, True, False, True, False, True, True,
True, True, True, False, False, False, True, True, True,
True, True, True, True, True, True, True, False, True,
True, True, False, True, True, True, True, True, True], dtype=bool)}

因此,在我的工作背景下,我想按 'dd_rf[key]['rates'][' CorrectRate'] 的值按​​降序对整个字典 'dd_rf' 进行排序。上例中与给定排序标准相对应的值为“CorrectRate”:0.7901234567901234。

谢谢!如果我可以提供更多背景信息,请告诉我。

最佳答案

我不确定您要寻找的最终形式是什么,因为将结果填回字典中会丢失顺序。也许看看 collections.OrderedDict。但是,基本思想是将字典转换为列表,然后使用自定义函数对该列表进行排序。例如

answer = sorted(dd_rf.items(), key=lambda (k,v): v['rates']['correctRate'])

这就是总体思路。您可能想首先看看类似的内容

sorted(range(10), key=lambda x: (x-5)**2)

致力于加深您的理解。

关于Python:按值对嵌套字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com