如何对元组的字典值进行排序

时间:2018-06-14 15:40:13

标签: python python-3.x

这基本上是同一个问题:

How do I sort a dictionary by value?

然而,我的字典值是一个有四个浮点数的元组。如何键入嵌套元组中的元素?

sorted_dict = {k: dict_cleanwhite[k] for k in 
    sorted(dict_cleanwhite.items(), key=operator.itemgetter(1), reverse=True)}

输出是:

KeyError: ('43 \n', (776.52, 466.3, 785.37504, 477.34))

如何选择嵌套元组元素776?

开始编写函数以返回元组元素:

def get_item(op_obj):
    for v in op_obj:
        return v

问题是返回的类型operator.itemgetter未被识别,猜测要阅读文档。

1 个答案:

答案 0 :(得分:0)

首先你不应该将它转换回常规OrderedDict有几个问题,它会失去它的排序。使用lambda保留订单

要按元组中的第一项排序,请使用lambda i: i[1][0]函数from collections import OrderedDict sorted_dict = OrderedDict(sorted(dict_cleanwhite.items(), key=lambda i: i[1][0], reverse=True))

if(!is_writable($imgDir)) { exit('CANNOT_WRITE_IN_DIR'); }