测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A23177. 状态关键词小李将一个月内某平台上每天的状态关键词(美滋滋、忙、疲惫......)保存在了文本文件"state.txt"中,现在他编写了一个Python程序,用来统计一个月内出现次数最多的状态关键词及次数,如果有多个状态关键词并列最多,则输出第一个。具体思路如下:(1)将文本文件中的状态关键词通过jieba模块进行分词,并保存在列表中; 分词结果: ['美滋滋', '裂开', '运动', '疲惫'…

填空题 困难

题目描述

状态关键词

小李将一个月内某平台上每天的状态关键词(美滋滋、忙、疲惫......)保存在了文本文件"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)

参考答案

""" import jieba txt=open("/data/state.txt","r",encoding="utf-8").read() words=jieba.lcut(txt) #jieba模块分词,lcut方法分词结果存放在列表中 """ words=['美滋滋', '裂开', '运动', '疲惫', '发呆', '冲', '学习', '学习', '胡思乱想', '忙', '元气', '美滋滋', '美滋滋', '美滋滋', '美滋滋', '美滋滋', '裂开', '运动', '疲惫', '发呆', '冲', '胡思乱想', '元气', '裂开', '运动', '忙', '美滋滋', '美滋滋', '发呆', '摸鱼', '回家'] maxlen=1 #变量maxlen存放最多出现次数 maxd=0 #变量maxd存放最多出现次数的状态关键词在列表中的位置(索引) dic={} #创建空字典,用来存放状态关键词和次数 i=0 while i<len(words): #遍历列表中的关键词,变量i为关键词的索引 if words[i] not in dic: #如果关键词未在字典中,增加一个键值对,次数初始值为1 dic[words[i]]=1 else: dic[words[i]]+=1 #如果关键词已经在字典中,更新次数的值 if dic[words[i]]>maxlen: #比大小,更新变量maxd和maxlen maxd=i maxlen=dic[words[i]] i+=1 print("出现最多的状态是:",words[maxd],"次数为:",maxlen) #出现最多的状态关键词需要去列表中获取

答案解析

评分标准:

(1)lcut 或等效答案;(2分)

(2)dic[words[i]]=1 或等效答案;(3分)

(3)dic[words[i]]>maxlen 或等效答案;(3分)

(4)words[maxd] 或等效答案。(2分)

上一题 下一题