Python:找到出现次数最多的单词?

2024-04-17

我试图让我的程序报告文本文件中出现最多的单词。例如,如果我输入“你好,我喜欢馅饼,因为它们非常好吃”,程序应该打印出“最喜欢的馅饼”。执行选项 3 时出现此错误:KeyError: 'h'

#Prompt the user to enter a block of text.
done = False
textInput = ""
while(done == False):
    nextInput= input()
    if nextInput== "EOF":
        break
    else:
        textInput += nextInput

#Prompt the user to select an option from the Text Analyzer Menu.
print("Welcome to the Text Analyzer Menu! Select an option by typing a number"
    "\n1. shortest word"
    "\n2. longest word"
    "\n3. most common word"
    "\n4. left-column secret message!"
    "\n5. fifth-words secret message!"
    "\n6. word count"
    "\n7. quit")

#Set option to 0.
option = 0

#Use the 'while' to keep looping until the user types in Option 7.
while option !=7:
    option = int(input())

#The error occurs in this specific section of the code.
#If the user selects Option 3,
    elif option == 3:
        word_counter = {}
        for word in textInput:
            if word in textInput:
                word_counter[word] += 1
            else:
                word_counter[word] = 1

        print("The word that showed up the most was: ", word)

我想你可能想做:

for word in textInput.split():
  ...

目前,您只是迭代中的每个字符textInput。因此,要迭代每个单词,我们必须首先将字符串拆分为单词数组。默认情况下.split()在空格上分割,但您可以通过将分隔符传递给来更改它split().


另外,您需要检查该单词是否在您的字典中,而不是在原始字符串中。所以尝试:

if word in word_counter:
  ...

然后,查找出现次数最多的条目:

highest_word = ""
highest_value = 0

for k,v in word_counter.items():
  if v > highest_value:
    highest_value = v
    highest_word = k

然后,只需打印出的值highest_word and highest_value.


要跟踪联系,只需保留最高单词的列表即可。如果我们发现出现次数更高,请清除列表并继续重建。这是到目前为止的完整程序:

textInput = "He likes eating because he likes eating"
word_counter = {}
for word in textInput.split():
  if word in word_counter:
    word_counter[word] += 1
  else:
    word_counter[word] = 1


highest_words = []
highest_value = 0

for k,v in word_counter.items():
  # if we find a new value, create a new list,
  # add the entry and update the highest value
  if v > highest_value:
    highest_words = []
    highest_words.append(k)
    highest_value = v
  # else if the value is the same, add it
  elif v == highest_value:
    highest_words.append(k)

# print out the highest words
for word in highest_words:
  print word
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:找到出现次数最多的单词? 的相关文章

随机推荐

  • SwiftUI ViewBuilder 块中 switch 语句的替代方案?

    2020 年 6 月 23 日编辑 从 Xcode 12 开始 ViewBuilder 将支持 switch 和 if let 语句 我一直在尝试使用 SwiftUI 复制我的应用程序 它有一个 RootViewController 根据枚
  • HDFS 在大量小文件和 128 Mb 块大小上的行为

    我有很多 多达数十万个 小文件 每个文件 10 100 Kb 我的 HDFS 块大小等于 128 MB 我的复制因子等于 1 为每个小文件分配 HDFS 块有什么缺点吗 我见过相当矛盾的答案 答案说最小的文件占用整个块 https stac
  • 如何在 C++ 中使用 matlab tic toc?

    在Matlab中 tic do something toc 我尝试拥有此功能 define tic double tic t clock define toc std cout lt lt clock tic t CLOCKS PER SE
  • 多个异步 AJAX 调用最佳实践

    我有一个关于在单个页面上进行多个 AJAX 调用的 最佳实践 的问题 我需要异步进行 5 个独立的调用 我知道 ajax 本质上是异步的 但我很好奇是否有一种 更干净 或 更好 的方法来执行多个 AJAX 调用 下面是包含多个 AJAX 调
  • 如何以编程方式在视图中设置样式属性

    我使用以下代码从 XML 中获取视图 Button view Button LayoutInflater from this inflate R layout section button null 我想为按钮设置一个 样式 我怎样才能在j
  • 如何从数据库获取视图的行数?

    我正在尝试创建一个自定义视图 以获取数据库所有视图和表的行数 在 SQL Server 中获取表的计数是该死的 SELECT TABLE SCHEMA TABLE NAME TABLES TABLE NAME RECORD COUNT MA
  • Google crashpad 上的一个交叉编译平台应用程序。 Ubuntu 中无法读取 dmp 文件

    我有一个小qt项目 https github com apalomer qt crashpad test我想跟踪一个分段错误 这是一个示例 分段错误是出于测试目的而手动添加的 在实际项目中我不知道留在那里的分段错误 我决定使用 google
  • 如何在 Windows Phone 7 的列表框中应用备用行样式

    您好 我是 Windows Phone 7 的新手 我在将样式应用于 Windows Phone 7 列表框中的交替行颜色时遇到问题 请帮助我 虽然 WPF 有一个ALternationCount支持这一点的属性 Silverlight 无
  • 如何使用 Jetpack Compose 显示在单击按钮时隐藏的 IconButton?

    我在我的ViewModel类 一个State对象的默认值为false var menuState mutableStateOf false 现在我想显示IconButton根据 的值menuState setContent Scaffold
  • 使用 numpy nan 查找列表的最大值[重复]

    这个问题在这里已经有答案了 import numpy as np print max np nan 1 2 3 4 print max 1 2 3 4 np nan print max 1 2 3 np nan 4 第一个将打印 nan 作
  • 物理地址、设备地址和虚拟地址的区别

    有什么区别设备地址 实际地址 and 虚拟地址 其实我正在努力mmap在驱动程序中 我一直坚持这个概念 The 文档 https www kernel org doc Documentation DMA API HOWTO txt says
  • 无法获取 org.hibernate.persister.entity.SingleTableEntityPersister 错误的构造函数

    我不是 hibernate 的频繁用户 我正在尝试创建多对一映射 但出现错误 主题 我一直在寻找类声明中的错误 还有 getter 最后一个错误 但一切似乎都是正确的 有人看到我的代码中有任何错误吗 因为我无法弄清楚 地址 java pac
  • 从环境中检索“一周的第一天”和“CalendarWeekRule”

    我认为这应该很容易 但我自己 还 找不到它 我需要知道是否可以从系统环境和 或本地设置中检索这两个值 我知道在我的国家 荷兰 这些价值观应该是 每周第一天 星期一 日历周规则 FirstFullWeek 但我不想为此设定固定的规则 您可以从
  • 使用 WinForms TreeView 递归目录列表?

    我想制作一个树视图 显示系统上的所有文件夹 并且仅显示音乐文件 例如 mp3 aiff wav 等 我记得读到我需要使用递归函数或类似的东西 通常大多数计算机都有数千个文件夹和数十万个文件 因此递归地在 TreeView 中显示所有这些文件
  • D3 V6 - 缩放和拖动功能

    在 Angular 7 中使用 D3 v6 创建世界地图 Choropleth 从 Angular 精简为纯 JavaScript 从 NaturalEarth 收集并在 mapshaper 中编译的形状文件以创建 GeoJSON 只对国家
  • jQuery-UI 主题 - CSS 大小差异

    当使用jQueryUI http www jqueryui com home网站上的示例 主题浏览器 http www jqueryui com themeroller 事情看起来很棒 但是 当我将代码和主题放入我的应用程序中时 大小调整完
  • Tornado with_timeout 正确用法

    我有一个运行一些 shell 命令的网络服务器 该命令通常需要几秒钟 但在某些情况下需要更多时间 在这种情况下客户端 不是网络浏览器或curl 会断开连接 我无法修复客户端 所以我考虑修复服务器 它基于龙卷风框架 我使用tornado ge
  • 十六进制常数 = 格式错误的数字?

    我有一个 Lua 脚本 我试图在其中使用十六进制数字 0x 如果我使用官方 Windows 二进制文件在控制台中运行此脚本 它可以正常工作 但是如果我在我的应用程序中运行它 简单的 dofile 我得到 malformed number n
  • Easy Tracker 中的 Google 分析自定义屏幕名称

    我有一个具有重用活动的应用程序 它用于不同的目的 因此仅跟踪活动名称对我没有帮助 这就是为什么我想在仍然使用 EasyTracker 的同时手动定义屏幕名称 我的代码如下所示 EasyTracker t EasyTracker getIns
  • Python:找到出现次数最多的单词?

    我试图让我的程序报告文本文件中出现最多的单词 例如 如果我输入 你好 我喜欢馅饼 因为它们非常好吃 程序应该打印出 最喜欢的馅饼 执行选项 3 时出现此错误 KeyError h Prompt the user to enter a blo