Python 如何返回最长行中最短的单词?
因此,我的文件内容在file name testing.txt下,如下所示: testing.txt(文件) 如何创建一个函数来分析给定文件中的每一行,并返回最长文件行中的最短单词。因此,在这种情况下,应该返回单词(are),因为它是整个文件中最长行中最短的单词。谢谢你的帮助!我知道我必须使用for循环来检查文件的每一部分,但我肯定缺少函数中的一些主要部分。我知道如何显示文件中的每一行,但我不知道如何分析文件中的每一行并返回一个特定的行(最短的单词) 到目前为止,我有一个函数,它读取文件并打印文件中最大的一行,但我仍然停留在文件中最短的字上Python 如何返回最长行中最短的单词?,python,python-3.x,Python,Python 3.x,因此,我的文件内容在file name testing.txt下,如下所示: testing.txt(文件) 如何创建一个函数来分析给定文件中的每一行,并返回最长文件行中的最短单词。因此,在这种情况下,应该返回单词(are),因为它是整个文件中最长行中最短的单词。谢谢你的帮助!我知道我必须使用for循环来检查文件的每一部分,但我肯定缺少函数中的一些主要部分。我知道如何显示文件中的每一行,但我不知道如何分析文件中的每一行并返回一个特定的行(最短的单词) 到目前为止,我有一个函数,它读取文件并打印文
def main():
List = []
infile = open('testing.txt', 'r')
line1= infile.readline()
line2= infile.readline()
line3= infile.readline()
line4= infile.readline()
line5= infile.readline()
if line1>line2 and line3 and line4 and line5:
List.append(line1)
elif line2>line1 and line3 and line4 and line5:
List.append(line2)
elif line3> line1 and line2 and line4 and line5:
List.append(line3)
elif line4> line1 and line2 and line3 and line5:
List.append(line4)
else:
List.append(line5)
print (List)
main()
使用
max
和min
为您的预期输出尝试此操作
def shortest_word_in_longest_line(filename):
with open(filename) as file:
longest_line = max(file, key=len) # file is an iterator over lines
return min(longest_line.split(), key=len) # whitespace-separated words
例如:
>>> print(shortest_word_in_longest_line('testing.txt'))
'are'
使用
max
和min
为您的预期输出尝试此操作
def shortest_word_in_longest_line(filename):
with open(filename) as file:
longest_line = max(file, key=len) # file is an iterator over lines
return min(longest_line.split(), key=len) # whitespace-separated words
例如:
>>> print(shortest_word_in_longest_line('testing.txt'))
'are'
请告诉我们你到目前为止都做了些什么。你被否决了,因为你的帖子等于“为我做”而没有表现出任何努力。将问题分解成更小的块,并找出如何实现每个块。试一试,当您遇到需要帮助的特定问题时,请回来。请投赞成票。请向我们展示您迄今为止所做的尝试。你被否决了,因为你的帖子等于“为我做”而没有表现出任何努力。将问题分解成更小的块,并找出如何实现每个块。试一试,当您遇到需要帮助的特定问题时再回来。请投赞成票。由于打开的文件f已经是一个迭代器,并且max可以处理任何iterable,因此无需使用.readlines()将文件准备到列表中
max(f,key=len)
运行速度更快,占用的空间更少。否则,答案很好。我不知道文件是什么时候成为迭代器的,但我只是检查了一下,它们至少在2.7中是这样的,使用.next而不是,无需使用.readlines()将文件准备到列表中max(f,key=len)
运行速度更快,占用的空间更少。否则,答案很好。我不知道文件是什么时候成为迭代器的,但我只是检查了一下,它们似乎至少在2.7中是这样的,使用了.next而不是。