如何使用 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 循环检查该单词的长度是否等于最长单词的长度。
列表推导:
当您希望根据现有列表的值构建新列表时,列表推导提供了更短/简洁的语法。
打印给定文本文件中所有最长的单词。
使用 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() 函数将文件内容拆分为单词并确定最短单词的长度。确定最大长度后,我们学习了如何扫描整个文件内容以查找最大长度单词。