在将字典转换为整数后根据值对字典键进行排序

use*_*351 2 python sorting dictionary

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

def sortfunc(dict_arg):
    return sorted(dict_arg.keys(),key=dict_arg.get,reverse=True)
Run Code Online (Sandbox Code Playgroud)

所以我的输出应该是['harry','tom','dick','jim']因为'harry'具有最高值121并且jim具有最低值25.但是我得到['dick','jim','harry','tom']因为值是asciibetically ordered.现在我需要找出一种方法来将值转换为整数和按转换为整数的值对键进行排序.任何提示我正确方向的提示都值得赞赏.

the*_*eye 5

您可以在此处使用lambda函数将值转换为int

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

产量

['harry', 'tom', 'dick', 'jim']
Run Code Online (Sandbox Code Playgroud)