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

时间:2013-12-18 00:56:32

标签: 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'的最高值为121,而jim的最低值为25。 但我得到['dick','jim','harry','tom'],因为这些值是asciibetically ordered。现在我需要找出一种方法来将值转换为整数,并通过转换为整数的值对键进行排序。任何提示我正确方向的提示都值得赞赏。

1 个答案:

答案 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']