pythonexecquery_python的一道题目

c0245f4b3d121afc8154fa424d6504e4.png

慕盖茨9453107

1234567891011121314151617181920212223242526272829303132333435363738394041424344from __future__ import print_functionclass reverseindex:    def __init__(self,wordfilename):        self._filename=wordfilename    def buildindex(self):        wordfile=open(self._filename,'r')        self._worddict={}        for lineno,line in enumerate(wordfile):            for word in line.split():                self._worddict.setdefault(word,set()).add(lineno+1)    def printindex(self):        for word in sorted(self._worddict):            print(word+": ",end="")            print(', '.join(str(lineno) for lineno in sorted(self._worddict[word])))    def execquery(self,query):        if query.startswith("AND:"):            self.andquery(query[4:])        elif query.startswith("OR:"):            self.orquery(query[3:])        else:            self.andquery(query)    def andquery(self,query):        first=True        result=set()        for word in query.split():            tmp=self._worddict.get(word,set())            if first:                result=tmp                first=False            else:                result=result&tmp        if result:            print(', '.join(str(lineno) for lineno in sorted(result)))        else:            print("None")    def orquery(self,query):        result=set()        for word in query.split():            tmp=self._worddict.get(word,set())            result=result|tmp        if result:            print(', '.join(str(lineno) for lineno in sorted(result)))        else:            print("None")  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值