我有一个文件,其中包含一个单词列表,例如:
字1 34
字2 12
字3 6
字4 498
字5 50
我想按数值对文件进行排序。我的代码:
sortedfreqlist = sorted(freqlist, key=operator.itemgetter(1), reverse=True)
不太有效,因为它将数字排序为单词,即 12 在 6 之前等。
任何想法我该怎么做?
排序不起作用,因为您的值不是数字类型,因此应用了词典排序。请务必将排序键转换为数字,例如:
sortedfreqlist = sorted(freqlist, key=lambda item: int(item[1]), reverse=True)
在你最喜欢的搜索引擎中搜索"自然排序python",你会发现许多不同的解决方案。
这是一个处于活动状态。
这是SO的一个很好的整洁解决方案。