需要帮助使用Python的排序函数
我的字典内容是这样的:
>>> dict
{'6279': '45', '15752': '47', '5231': '30', '475': '40'}
我尝试在键上使用排序功能。可是我发现排序功能对键 -- 15752 不起作用。请看下面的内容:
>>> [k for k in sorted(dict.keys())]
['15752', '475', '5231', '6279']
有没有人能告诉我有什么办法可以解决这个问题?
谢谢
我期望的输出是:
['475', '5231', '6279', '15752']
4 个回答
2
如果我在评论里的猜测没错,你是想把数字键排序的话,可以把你的代码改成这样:
sorted([int(k) for k in test.keys()])
# returns [475, 5231, 6279, 15752]
3
如果它们都是整数的话,
sorted(dict, lambda x, y: cmp(int(x), int(y)))
10
哦,你是想按数字的大小来排序,而不是按字符串的字母顺序。所以你需要在某个时候把字符串转换成数字,可以用 int(s)
这个方法。或者你也可以直接使用 sorted(dict.keys(), key=int)
来排序。