【发布时间】:2015-03-18 00:44:25
【问题描述】:
我正在编写一个函数,它基本上接受两个参数作为参数,其中一个是包含单词的列表,另一个是列表中每个单词的索引。我的排序功能没有给我想要的输出
这是我的代码:
from collections import defaultdict
import re
def sort_by_postings(words,index):
for key, value in sorted(index.iteritems(), key=lambda (k,v): (v,k)):
print "%s" % (key)
期望的输出:
>>> sort_by_postings(['a', 'b', 'c'], {'a': [0, 1], 'b': [1, 2, 3], 'c': [4]})
['c', 'a', 'b']
这里首先列出'c',因为它只存在于一个文档中,即[4],而'a' 存在于两个文档中,即docID [0,1] 和'b' 存在于三个文档ID 为@987654328 的文档中@
所以基本上我想根据这些单词的出现次数对列表进行排序,按照出现次数最少到出现次数更多的顺序。
你们能否建议对我的函数进行任何修改,或者你能帮助我提供一个提供所需输出的新函数..
【问题讨论】:
标签: python list sorting indexing