刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

37.状态关键词

小李将一个月内某平台上每天的状态关键词(美滋滋、忙、疲惫......)保存在了文本文件"state.txt"中,现在他编写了一个Python程序,用来统计一个月内出现次数最多的状态关键词及次数,如果有多个状态关键词并列最多,则输出第一个。
具体思路如下:
(1)将文本文件中的状态关键词通过jieba模块进行分词,并保存在列表中; 分词结果:
​ ['美滋滋', '裂开', '运动', '疲惫', '发呆', '冲', '学习', '学习', '胡思乱想', '忙', '元气', '美滋滋', '美滋滋', '美滋滋', '美滋滋', '美滋滋', '裂开', '运动', '疲惫', '发呆', '冲', '胡思乱想', '元气', '裂开', '运动', '忙', '美滋滋', '美滋滋', '发呆', '摸鱼', '回家'](2)通过字典统计每个状态关键词的出现次数;
(3)通过比较,找出出现次数最多的状态关键词。
输出结果:
出现最多的状态是: 美滋滋 次数为: 8
实现上述功能的Python程序如下,请在划线处填入合适的代码。
"""
import jieba
txt=open("/data/state.txt","r",encoding="utf-8").read()
words=jieba. ① (txt) #jieba模块分词的结果存放在列表中
"""
words=['美滋滋', '裂开', '运动', '疲惫', '发呆', '冲', '学习', '学习', '胡思乱想', '忙', '元气', '美滋滋', '美滋滋', '美滋滋', '美滋滋', '美滋滋', '裂开', '运动', '疲惫', '发呆', '冲', '胡思乱想', '元气', '裂开', '运动', '忙', '美滋滋', '美滋滋', '发呆', '摸鱼', '回家']
maxlen=1 #变量maxlen存放最多出现次数
maxd=0 #变量maxd存放最多出现次数的状态关键词在列表中的位置
dic={} #字典dic存放每个状态关键词及其出现次数
i=0
while i<len(words):
if words[i] not in dic:
​ ②
else:
​ dic[words[i]]+=1
​ if ③ :
​ maxd=i
​ maxlen=dic[words[i]]
i+=1
print("出现最多的状态是:", ④ ,"次数为:",maxlen)

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

根据题目描述和提供的思路,我们可以按照以下步骤完成Python程序的填写:

  1. 使用jieba模块的lcut方法对文本进行分词,并将结果保存在列表中。所以划线处①应填写lcut。

  2. 对于每个状态关键词,如果它不在字典dic中,我们需要在字典中创建它并设置其出现次数为1。所以划线处②应填写dic[words[i]] = 1。

  3. 在遍历列表的过程中,我们需要比较当前关键词的出现次数与已知的最大出现次数maxlen。如果当前关键词的出现次数大于maxlen,则更新maxlen和maxd。所以划线处③应填写dic[words[i]] > maxlen。

  4. 在输出时,我们需要输出出现次数最多的状态关键词,即列表中的第maxd个元素。所以划线处④应填写words[maxd]。

因此,完整的Python程序如下:

import jieba
txt = open("/data/state.txt", "r", encoding="utf-8").read()  # 打开并读取文件内容
words = jieba.lcut(txt)  # 使用jieba模块进行分词并保存在列表中
maxlen = 1  # 初始化最大出现次数为1
maxd = 0  # 初始化最多出现次数的关键词在列表中的位置为0
dic = {}  # 创建字典用于存放每个关键词及其出现次数
i = 0  # 定义索引变量i用于遍历列表
while i < len(words):  # 遍历列表中的每个关键词
    if words[i] not in dic:  # 如果关键词不在字典中,则在字典中添加该关键词并设置其出现次数为1
        dic[words[i]] = 1  
    else:  # 如果关键词在字典中,则增加其出现次数
        dic[words[i]] += 1  
    if dic[words[i]] > maxlen:  # 如果当前关键词的出现次数大于最大出现次数,则更新最大出现次数和最多出现次数的关键词位置
        maxd = i  
        maxlen = dic[words[i]]  
    i += 1  # 移动索引到下一个关键词
print("出现最多的状态是:", words[maxd], "次数为:", maxlen)  # 输出出现次数最多的状态关键词及其出现次数
创作类型:
原创

本文链接:37.状态关键词小李将一个月内某平台上每天的状态关键词(美滋滋、忙、疲惫......)保存在了文本文

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share