Skip to main content
 首页 » 编程设计

python之按值的 INT 值对字典进行排序

2025年05月04日13jirigala

这里有很多关于在 Python 中对字典进行排序的帖子,所以我仔细阅读了它们,希望这不是重复的:

我正在使用字典将单词保存为键,将单词的出现保存为值。这导致字典可能是这样的:

John 1 
Robert 5 
Susie 15 
Alex 6 

我想按出现次数(“值”)对它们进行排序

John 1 
Robert 5 
Alex 6 
Susie 15 

我正在使用以下代码来尝试像这样对我的字典进行排序:

sorted_words = sorted(words.iteritems(), key=itemgetter(1)) 

然而,这会返回一个排序后的元组列表,如下所示:

John 1 
Susie 15 
Robert 5 
Alex 6 

您可以看到问题在于,使用上面的代码,值是“按字母顺序”排序的,因此 15 跟在 1 之后,即使在数学上 15 > 5 和 6 应该排在最后。

我如何修改代码以将值视为 INT 而不是字符串

请您参考如下方法:

您必须在键表达式中将值转换为整数。使用

sorted_words = sorted(words.iteritems(), key=lambda x: int(x[1])) 

可能很想尝试类似 key=int(itemgetter(1)) 的方法,但这不会起作用,因为 key 参数需要一个函数。