我的字典内容如下: -
>>> 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']
答案 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'}