python怎样写一个索引排序功能?
Admin 2021-05-18 群英技术资讯 658 次浏览
这篇文章主要给大家分享如何Python实现索引排序功能,小编觉得是比较有意思的,因此与大家分享一下,下面我们就一起来看看具体的实现吧。
代码如下图:
import requests import re def News_Spider():#定义一个爬虫 url = 'https://news.sina.com.cn/'#url地址,新浪新闻 headers = {#请求头 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' } response = requests.get(url,headers,verify=False)#针对https,采用verify=False response.encoding='utf-8'#编码方式 html = response.text#获取页面源代码 #print(html)#打印源代码 reg = 'target="_blank">(.*?)</a>'#设置规则 content = re.findall(reg,html)#从页面源代码中筛选 ls = []#定义一个空列表 for c in content: if '<' in c: continue else: if len(c) > 6 and '客户端' not in c: #print(c) ls.append(c) else: continue docu_set = {}#定义一个字典 for l in range(len(ls)): docu_set['d{}'.format(l+1)] = ls[l]#格式化方法,从1开始 return docu_set def change_set(): all_words = []#定义一个空列表用于存储 docu_set = News_Spider() for i in docu_set.values(): cut = i.split()#分词 all_words.extend(cut)#添加分词 set_all_words = set(all_words) return set_all_words #print(set_all_words) def reverse_index(): invert_index = dict()#定义空字典 set_all_words = change_set()#将返回值传递给变量 docu_set = News_Spider() for b in set_all_words: temp = [] for k in docu_set.keys(): field = docu_set[k] split_field = field.split() if b in split_field: temp.append(k) invert_index[b] = temp print(invert_index) return invert_index def Select(): docu_set = News_Spider() invert_index = reverse_index() news = [] # for i in invert_index: # print(invert_index[i]) while True: Find = str(input('请输入查找内容:')) if Find == '不查了': break for Contetnt in invert_index:#循环每一个键 if Find in Contetnt:#如果输入在键的字符串中 Result = invert_index[Contetnt]#循环出字典中每一个对应的值 #print(Result) for r in Result:#循环每一个值 if r in docu_set.keys():#如果值在字典中 news.append(docu_set[r])#列表增加字典docu_set的值 print(docu_set[r])#打印输出字典的值 else: continue else: if Find not in Contetnt: news.append('很抱歉,没有找到更多内容!!') #news = set(news) for n in news: if '很抱歉' in n: print(n) break else: print(n) def main_function():#定义一个主方法 News_Spider() change_set() reverse_index() Select() if __name__ == '__main__':#程序入口 main_function()
运行结果如下图:
关于代码的解释,我写在注释中了。
以上就是关于Python实现索引排序功能的介绍,此外还介绍了搜索功能的实现,需要的朋友可以参考上述代码,想要了解更多Python相关内容,大家可以关注其他文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了Python全栈之线程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
这篇文章主要介绍了Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
python中集合set是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素,还可以计算交集、差集、并集等,它与列表(list)的行为类似,这篇文章主要介绍了python set()去重的底层原理,需要的朋友可以参考下
这篇文章主要给大家介绍了关于利用Python将彩色图像转为灰度图像的两种方法,以及python 批量将图片转为灰度图的方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
大家应该都知道redis是一个基于内存的高效的键值型非关系数据库,下面这篇文章主要给大家介绍了关于Python操作Redis的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008