需要帮助使用Python的排序函数

3 投票
4 回答
1316 浏览
提问于 2025-04-16 02:16

我的字典内容是这样的:

>>> 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) 来排序。

撰写回答