万卷网 > 题目详情
题型:编程题

状态关键词

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

更新时间:2025-10-23 12:29:05 |
【知识点】 电子学会Python五级

相似题推荐

单选题

埃氏筛中将内层循环从j = i*i 开始而不是j = 2*i 的主要原因是()。

def eratosthenes_sieve_for(n):
    if n < 2:
        return []
    is_composite = [False] * (n + 1)
    primes = []

    for i in range(2, n + 1):
        if is_composite[i]:
            continue
        primes.append(i)

        # 用for循环模拟C++的 j = i*i; j <=n; j +=i
        for j in range(i * i, n + 1, i):
            is_composite[j] = True

    return primes


A.

因为2*i 一定不是合数

B.

i*i 一定是质数

C.

小于i*i 的i 的倍数已被更小质因子筛过

D.

这样可以把时间复杂度降为O(n)

2026-09-14
判断题

快速排序只要每次都选取中间元素作为枢轴,就一定是稳定排序。

A.正确 B.错误
2026-09-14
单选题

对如下代码实现的欧几里得算法(辗转相除法),调用gcd(48 , 18) 得到的调用序列为()。

def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)


A.gcd(48 ,18) -> gcd(18 ,12) -> gcd(12 ,6) -> gcd(6 ,0) B.gcd(48 ,18) -> gcd(30 ,18) -> gcd(12 ,18)
C.gcd(48 ,18) -> gcd(18 ,30) -> gcd(30 ,6) D.gcd(48 ,18) -> gcd(12 ,18) -> gcd(6 ,12)
2026-09-14
单选题

下面代码用分治求“最大连续子段和”,其时间复杂度为()。

import sys
def solve(a , l , r):
    if l == r:
        return a [l]
    mid = l + (r - l) // 2
    left = solve(a , l , mid)
    right = solve(a , mid + 1 , r)
    sum_val = 0
    lmax = -sys .maxsize - 1
    for i in range(mid , l - 1 , -1):
        sum_val += a [i]
        lmax = max (lmax , sum_val)
    sum_val = 0
    rmax = -sys .maxsize - 1
    for i in range(mid + 1 , r + 1):
        sum_val += a [i]
        rmax = max (rmax , sum_val)
    return max(left , right , lmax + rmax)

if __name__ == "__main__":
    a1 = [-2 , 1 , -3 , 4 , -1 , 2 , 1 , -5 , 4]
    print(solve(a1 , 0 , len(a1)-1))
    a2 = [-5 , -3 , -1 , -4]
    print(solve(a2 , 0 , len(a2)-1))
    a3 = [10]
    print(solve(a3 , 0 , 0))
A.

O(n2)

B.

O(nlogn)

C.

O(logn)

D.

O(n)

2026-09-14
判断题

若一个问题满足最优子结构性质,则一定可以用贪心算法得到最优解。()

A.正确 B.错误
2026-09-14
公众号
客服 反馈
顶部