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

Python 根据值转换为整数后对字典键进行排序,python,sorting,dictionary,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) 所以我的输出应该是['harry','tom','dick','jim'],因为'harry'的最大值是12

我有一本字典,如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']

那么,使用lambda是清洁的唯一方法吗?。。。只是一厢情愿地想通过说key=mydict.get(int)来实现它。。。。谢谢你的回答。@theoutheye我想你是对的。我不想因为放弃可读性而使事情变得过于复杂。谢谢