python反向索引_Python建立倒排索引

cdays-3-test.txt 内容:

1 key1

2 key2

3 key1

7 key3

8 key2

10 key1

14 key2

19 key4

20 key1

30 key3

读取某一简单索引文件cdays-3-test.txt,其每行格式为文档序号 关键词,现需根据这些信息转化为倒排索引,即统计关键词在哪些文档中,格式如下:包含该关键词的文档数 关键词 => 文档序号。其中,原索引文件作为命令行参数传入主程序,并设计一个collect函式统计 "关键字序号" 结果对,最后在主程序中输出结果至屏幕。

源代码:

import sys

def col(file):

result={}

for line in file.readlines():

left,right=line.split()

if result.has_key(right):

result[right].append(left)

else:

result[right]=[left]    ///这里一定要在left两边加上【】,否则是会出现无法append的错误的,见下图

return result

if __name__=="__main__":

if len(sys.argv)==1:

print 'usage:\n\tpython cdays-3-exercise-2.py cdays-3-test.txt'

sys.exit();

else:

result=col(open(sys.argv[1],'r'))

for (right,lefts) in result.items():

print "%d'%s'\t=>\t%s" % (len(lefts),right,lefts)

结果:

你可能感兴趣的:(python反向索引)