Python按频率排序文件

时间:2011-05-07 20:29:58

标签: python file sorting int string

我有一个包含单词列表的文件,如:

word1 34

word2 12

word3 6

word4 498

word5 50

我想按数值对文件进行排序。我的代码:

sortedfreqlist = sorted(freqlist, key=operator.itemgetter(1), reverse=True)

不能正常工作,因为它将数字排序为单词,即12之前的数字等等。

我有什么想法可以做到这一点吗?

2 个答案:

答案 0 :(得分:3)

排序不起作用,因为您的值不是数字类型,因此应用了词典排序。请务必将排序键转换为数字,例如:

sortedfreqlist = sorted(freqlist, key=lambda item: int(item[1]), reverse=True)

答案 1 :(得分:0)

在您最喜爱的搜索引擎中搜索“natural sort python”,您会找到许多不同的解决方案。

这是activestate的一个。

这是一个不错的tidy solution at SO