这基本上是同一个问题:
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
未被识别,猜测要阅读文档。
答案 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'); }