【发布时间】:2014-02-10 01:44:31
【问题描述】:
这里有很多关于在 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 而不是字符串
【问题讨论】:
-
存储的值是什么?
str或int? -
@squiguy 刚试了,没解决问题
-
是的,因为它们现在按其字符串值按字典顺序排序。
-
@Juicy 是的。或
key=lambda x: int(x[1])
标签: python sorting dictionary