我想使用下面的代码,但在python中查找文本文件中最长单词的长度

我想使用下面的代码,但在python中查找文本文件中最长单词的长度,python,Python,使用这个,但在一个文本文件中找到,我不知道如何做到这一点 len(max(words, key=len)) 有人知道我怎样才能做到这一点吗 还有,我如何找出一个6或7长度的单词在文本文件中出现了多少次 以进行后续编辑 with open('textfile.txt') as f: words = f.read().split() sizes = list(map(len,words)) print('Maximum word length: {}'.format(max(sizes

使用这个,但在一个文本文件中找到,我不知道如何做到这一点

len(max(words, key=len))
有人知道我怎样才能做到这一点吗


还有,我如何找出一个6或7长度的单词在文本文件中出现了多少次

以进行后续编辑

with open('textfile.txt') as f:
  words = f.read().split()
  sizes = list(map(len,words))
  print('Maximum word length: {}'.format(max(sizes)))
  print('6 letter count: {}'.format(sizes.count(6)))

您所要做的就是确定预期的输入,我假设主要是
单词
,并考虑如何读取输出预期为
单词
的文件

我猜测
单词
可以安全地成为
str的
列表。现在我们已经确定了输入的数据结构,让我们试着阅读一个示例文件,它最终将此数据结构作为输出,如
words

假设您有一个包含内容的普通文件,名为
sample.txt

a
bc
def
您读取它的代码可能(非常简单)”

现在请记住,您可能会遇到各种障碍,例如不同的文件格式、清除文本文件中的空行等,欢迎您阅读官方Python文档进行深入研究。希望这能为您提供一个良好的起点

from itertools import chain

with open('somefile') as fin:
    words = (line.split() for line in fin)
    all_words = chain.from_iterable(words)
    print max(all_words, key=len)
这样做的目的是获取输入文件,构建一个按空格分隔行的生成器,然后将该生成器链接到
max


根据您的编辑,然后:

from itertools import chain
from collections import Counter

with open('somefile') as fin:
    words = (line.split() for line in fin)
    all_words = chain.from_iterable(words)
    word_lengths = Counter(len(word) for word in all_words)

print word_lengths

从这开始工作…

听起来您需要帮助打开和阅读文本文件:

with open('words.txt', 'r') as words_file:
    words = words_file.read().split()
    print len(max(words, key=len))
首先,您读取文件。然后,通过在空格上拆分,从文本中获得一个单词列表,其工作原理如下:

>> "This is a test.".split()
['This', 'is', 'a', 'test']

您应该注意,这不处理标点符号(“这是一个测试”中最长的单词是“测试”,或5个字符),所以如果你需要过滤掉标点符号,那将是一个单独的步骤。

如果每行有多个单词呢?@EricRoper这就是我所说的障碍。你应该努力通过谷歌或Python文档(以及Python官方教程)进行探索要了解更多信息:)请不要恨我,我给了你一个光骨头的开头,你自己填咸肉。啊,我明白了。这是一种推动。我为没有在运行代码之前阅读你的评论而道歉。我以为你忘了错误地分割行,而不是故意的:)这适用于python 2.7及以上版本。对于早期版本s、 有关修复方法,请参阅。或者只在{}中添加0,如
{0}
with open('words.txt', 'r') as words_file:
    words = words_file.read().split()
    print len(max(words, key=len))
>> "This is a test.".split()
['This', 'is', 'a', 'test']