我有一个字典,例如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']
,因为这些值是asciibetically ordered。现在我需要找出一种方法来将值转换为整数,并通过转换为整数的值对键进行排序。任何提示我正确方向的提示都值得赞赏。
答案 0 :(得分:5)
您可以在此处使用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']