如何使用Python查找文本文件中最短的单词?
在本文中,我们将向您展示如何使用Python打印给定文本文件中所有最短的单词。最短的单词是指长度与文本文件中最短单词(最小长度)相同的单词。
假设我们有一个名为TextFile.txt的文本文件,其中包含一些随机文本。我们将返回给定文本文件中所有最短的单词。
TextFile.txt
Good Morning Tutorials Point This is the Tutorials Point sample File Consisting of Specific abbreviated source codes in Python Seaborn Scala Imagination Summary and Explanation Welcome user Learn with joy
算法(步骤)
以下是执行所需任务的算法/步骤:
创建一个变量来存储文本文件的路径。
使用open()函数(打开文件并返回文件对象作为结果)以只读模式打开文本文件,将文件名和模式作为参数传递给它(此处“r”表示只读模式)。
with open(inputFile, 'r') as filedata:
创建一个变量,使用read()函数(读取文件中指定数量的字节并返回它们。默认值为-1,这意味着整个文件)读取文本文件数据,并使用split()函数(将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格)将其拆分为给定文本文件的单词列表。
使用len()(len()方法返回对象中的项目数。当对象是字符串时,它返回字符串中的字符数)和min()(返回可迭代对象中最小值的项目)函数从上面的单词列表中查找最短单词的长度。
len(min(words List, key=len))
使用列表推导式,获取所有具有最短长度的单词并将它们保存在另一个变量中。在这里,我们遍历文件的每个单词,并使用列表推导式中的for循环检查该单词的长度是否等于最短单词的长度。
key=len指定我们必须根据单词的长度获取单词,我们将使用min()函数获取最小长度的单词,并使用len()函数获取最小长度单词的长度。
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 from a file wordsList = filedata.read().split() # finding the length of the shortest word in the above words list shortestWordLength = len(min(wordsList, key=len)) # Storing all the words having the minimum length(shortest word length) result = [textword for textword in wordsList if len(textword) == shortestWordLength] # Print the shortest words from a text file print("The following are the shortest words from a text file:") print(result) # Closing the input file filedata.close()
输出
执行上述程序将生成以下输出:
The following are the shortest words from a text file: ['is', 'of', 'in']
在这个程序中,我们从文本文件中读取一些随机文本。我们读取整个文件并将其分解成单词。获得单词后,我们确定了最小长度单词的长度。然后,我们逐字遍历文件,检查相应单词的长度是否等于最小长度单词的长度。如果为真,我们将打印这些单词并关闭打开的文件。