在python中,如何按值降序排序?

2024-04-28 23:54:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是一个有序字典,它包含所有的值(n_估计值和OOB估计的错误率,as shown here)。在

我想先在字典中得到错误率最低的值。在

例如,下面可以看到222的错误率最高。在

OrderedDict([('RandomForest_AWA_Fp1, max_features=7', 
    [(220, 0.10833333333333328), 
     (221, 0.10833333333333328), 
     (222, 0.10952380952380958), 
     (223, 0.10833333333333328)])
])

我想把这本字典按如下顺序排序:220221223222(按降序排列)

我试过:

^{pr2}$

但我看不出有什么不同。在

我得到的错误:

 File "<ipython-input-85-0592e683c6a9>", line 3
    pp(dict(OrderedDict(sorted([(k, sorted(v, key=min)) for k, v in d.items()], key=lambda(k, v): min(v)))))
                                                                                      ^
SyntaxError: invalid syntax

Tags: key字典hereas估计值minshownordereddict
1条回答
网友
1楼 · 发布于 2024-04-28 23:54:39

你的字典是由一个条目组成的,所以我不确定你是否也要对它进行排序。然而,从你的链接问题看来就是这样。在

由于您提到222具有最高的错误值,所以我认为您还希望对列表中的值进行排序。在

>>> from pprint import pprint as pp
>>> d = OrderedDict([('RandomForest_AWA_Fp1, max_features=7', [(220, 0.10833333333333328), (221, 0.10833333333333328), (222, 0.10952380952380958), (223, 0.10833333333333328)])])
>>> pp(OrderedDict(sorted([(k, sorted(v, key=min)) for k, v in d.items()], key=lambda(k, v): min(v))))
OrderedDict([('RandomForest_AWA_Fp1, max_features=7', [(220, 0.10833333333333328), (221, 0.10833333333333328), (223, 0.10833333333333328), (222, 0.10952380952380958)])]{'RandomForest_AWA_Fp1, max_features=7': [(220, 0.10833333333333328),
                                                  (221, 0.10833333333333328),
                                                  (223, 0.10833333333333328),
                                                  (222, 0.10952380952380958)]}

相关问题 更多 >