如何使用 Python 查找文本文件中的最长单词?


在本文中,我们将向您展示如何使用 Python 从给定的文本文件中打印所有最长的单词。最长的单词是指与文本文件中最长单词(最大长度)具有相同长度的单词。

假设我们获取了一个名为 ExampleTextFile.txt 的文本文件,其中包含一些随机文本。我们将返回给定文本文件中的所有最长单词。

ExampleTextFile.txt

Good Morning Tutorials Point
This is Tutorials Point sample File
Consisting of Specific
abbreviated
source codes in Python Seaborn Scala
Imagination
Summary and Explanation
Welcome user
Learn with a joy

算法(步骤)

以下是执行所需任务的算法/步骤:

  • 创建一个变量来存储文本文件的路径。

  • 使用 open() 函数(打开文件并返回文件对象作为结果)以只读模式打开文本文件,并将文件名和模式作为参数传递给它(此处“r”表示只读模式)。

with open(inputFile, 'r') as filedata:
  • 创建一个变量,使用 read() 函数(读取文件中的指定字节数并返回它们。默认值为 -1,表示整个文件)读取文本文件数据,并使用 split() 函数(将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格)将其拆分为给定文本文件的单词列表。

  • 使用 len()(len() 方法返回对象中的项目数。当对象是字符串时,它返回字符串中的字符数)和 max()(返回最高值项目,或可迭代对象中的最高值项目)函数从上述单词列表中查找最长单词的长度。

len(max(words List, key=len))
  • key=len 指定我们必须根据单词的长度获取单词,我们将使用 max() 函数获取最大长度单词,并使用 len() 函数获取最大长度单词的长度。

  • 使用 列表推导式,获取所有具有最长长度的单词并将它们保存在另一个变量中。在这里,我们遍历文件中的每个单词,并使用列表推导式中的 for 循环检查该单词的长度是否等于最长单词的长度。

list comprehension:
  • 当您希望基于现有列表的值构建新列表时,列表推导式提供了一种更短/简洁的语法。

  • 打印给定文本文件中的所有最长单词。

  • 使用 close() 函数(用于关闭已打开的文件)关闭输入文件。

示例

以下程序检查最长单词的长度,并打印所有与给定文本文件中最长单词长度相同的单词:

# input text file inputFile = "ExampleTextFile.txt" # Opening the given file in read-only mode. with open(inputFile, 'r') as filedata: # Getting the list of words of a file wordsList = filedata.read().split() # finding the length of the longest word in the above words list longestWordLength = len(max(wordsList, key=len)) # Storing all the words having the maximum length(longest word length) # Here, we are checking all the words whose length is equal to that of the longest word result = [textword for textword in wordsList if len(textword) == longestWordLength] # Print the longest words from a text file print("The following are the longest words from a text file:") print(result) # Closing the input file filedata.close()

输出

执行上述程序将生成以下输出:

The following are the longest words from a text file:
['abbreviated', 'Imagination', 'Explanation']

在这个程序中,我们从文本文件读取了一些随机文本。我们读取了整个文件并将文件分解成单词。在获取单词后,我们确定了最大长度单词的长度。然后,我们逐个单词遍历文件,检查相应单词的长度是否等于最小长度单词的长度。如果是,我们将打印这些单词并关闭打开的文件。

结论

因此,从本文中,我们学习了如何一次读取整个文件内容,这对于在整个文档中搜索任何单词而不是逐行搜索很有用。我们还学习了如何使用 split() 函数将文件内容拆分为单词,以及如何确定最短单词的长度。在确定最大长度后,我们学习了如何扫描整个文件内容以查找最大长度单词。

更新于: 2022年8月18日

13K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.