使用它,但在文本文件中找到,我不知道该怎么做。
len(max(words, key=len))
有谁知道我怎么能做到这一点?
另外我如何找出一个 6 或 7 长度的单词出现在文本文件中的次数?
使用它,但在文本文件中找到,我不知道该怎么做。
len(max(words, key=len))
有谁知道我怎么能做到这一点?
另外我如何找出一个 6 或 7 长度的单词出现在文本文件中的次数?
您所要做的就是确定预期的输入,我假设主要是words
,并考虑如何读取输出预期为words
.
我大胆猜测words
可能list
是str
. 现在我们已经确定了输入的数据结构,让我们尝试读取一个示例文件,该文件最终会为您提供这个数据结构作为输出,如words
.
假设您有一个包含内容的普通文件,名为sample.txt
:
a
bc
def
你的阅读代码可能是(非常准系统)”
with open('sample.txt') as f:
words = f.readlines()
print len(max(words, key=len))
现在请记住,您可能会遇到各种障碍,例如不同的文件格式,从文本文件中清除空行等,欢迎您阅读官方 Python 文档以深入了解。希望这能给你一个好的起点。
听起来您需要帮助打开和阅读文本文件:
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']
您应该注意,这不处理标点符号(“This is a test.”中最长的单词是“test.”,或 5 个字符),因此如果您需要过滤掉标点符号,那将是一个单独的步骤。
对于您的后续编辑,
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)))
>>> words = 'I am no hero'
>>> max(words.split(), key=len)
'hero'
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
从那开始工作......