需要帮助python中的sort函数

时间:2010-08-03 22:02:58

标签: python sorting dictionary key

我的字典内容如下: -

>>> dict
{'6279': '45', '15752': '47', '5231': '30', '475': '40'}

我尝试在键上使用sort函数。我注意到sort函数不适用于密钥 - 15752.请在下面找到: -

>>> [k for k in sorted(dict.keys())]
['15752', '475', '5231', '6279']

有人可以指出一种解决方法吗?

由于


我的预期输出是: -

['475', '5231', '6279', '15752']

4 个答案:

答案 0 :(得分:10)

啊你想按数字值而不是字符串排序,所以你应该先使用int(s)将字符串转换为数字,或者只使用sorted(dict.keys(), key=int)

答案 1 :(得分:2)

如果我的评论中的猜测是正确的,您希望数字键排序将您的代码行更改为:

sorted([int(k) for k in test.keys()])
# returns [475, 5231, 6279, 15752]

答案 2 :(得分:2)

如果他们是全部的,那么

sorted(dict, lambda x, y: cmp(int(x), int(y)))

答案 3 :(得分:1)

如果你想用数字排序然后在你的字典中存储数字而不是字符串,那么它就可以正常工作

>>> dict
{6279: '45', 15752: '47', 5231: '30', 475: '40'}