Python使用字典统计每个单词在其前方的出现次数问题求解
解题思路
你当前的逻辑只做了结果字典的初始化,缺少统计单词出现次数的核心逻辑。你需要额外新增一个字典,专门用来记录每个单词到当前位置为止的累计出现次数,具体实现步骤如下:
- 拆分输入文本得到单词列表
- 初始化两个字典:
result:键为单词索引,值为该位置单词在自身位置之前的出现次数,也就是你原本要实现的结果字典word_count:键为单词内容,值为该单词到当前位置为止的累计出现次数
- 遍历每个索引及对应的单词:
- 先取
word_count中当前单词的计数,不存在则默认是0,将这个值存入result对应索引的位置 - 把
word_count中当前单词的计数加1,供后续位置的同单词统计使用
- 先取
- 最后按索引顺序输出
result的所有值,用空格分隔即可
完整实现代码
result = {} word_count = {} s = input() word_list = s.split() for idx, word in enumerate(word_list): # 读取当前单词之前的出现次数存入结果字典 result[idx] = word_count.get(word, 0) # 更新当前单词的累计计数 word_count[word] = word_count.get(word, 0) + 1 # 按要求格式输出结果 print(' '.join(map(str, result.values())))
测试验证
输入示例文本:
the block on the block on the block on the floor
运行代码后输出:
0 0 0 1 1 1 2 2 2 3 0
完全符合预期输出,且全程使用字典实现,满足题目要求。
内容的提问来源于stack exchange,提问作者Emilia Delizia
相关产品推荐
相关产品推荐

