这里有很多关于在 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 参数需要一个函数。
