我有一个这样定义的字典:
dict: {'KEY1': Decimal('-6.20000'), 'KEY2': Decimal('-2.58000'), 'KEY3': Decimal('6.80000')}
我希望得到一个按绝对值排序的键值对列表或OrderedDict。
我尝试了:
sorted_dict = sorted(mydict, key=lambda k: abs(mydict[k]), reverse=True)
但这只返回键的列表,没有相应的值,虽然它们似乎按绝对值排序。
我该如何获取一个OrderedDict或包含键和值的元组列表,同时按绝对值排序?
sorted((abs(k), v) for k, v in d.items(), reverse=True)
是一种方法。 - Patrick Haughsorted_dict = sorted(((abs(k), v) for k, v in dict.items()), reverse=True)
时,我会收到另一个错误:交易循环错误:(<class 'TypeError' >,TypeError("abs()的操作数类型不正确:'str'",),<traceback object at 0x000001466D7DCE08>) - Vincent Lsorted((abs(v), k) for k, v in d.items(), reverse=True)
。 - Patrick Haugh