我有一本字典,如mydict={'tom': '100','dick': '50','harry': '121','jim':'25'}。请注意,这些值是字符串格式的数字。
我编写了一个函数,根据值按降序对键进行排序

def sortfunc(dict_arg):
    return sorted(dict_arg.keys(),key=dict_arg.get,reverse=True)

所以我的产出应该是['harry','tom','dick','jim'],因为“harry”的最高值是121,jim的最低值是25。
但我得到['dick','jim','harry','tom']是因为这些值是按算术顺序排列的,现在我需要找到一种方法将这些值转换成整数,并根据转换成整数的值对键进行排序。任何提示,推动我向正确的方向是赞赏的。

最佳答案

在这里可以使用lambda函数将值转换为int

mydict={'tom': '100','dick': '50','harry': '121','jim':'25'}
print sorted(mydict, key = lambda k: int(mydict[k]), reverse = True)

输出
['harry', 'tom', 'dick', 'jim']

07-26 08:06