对文本文件中的行字符求和?



我有一个这样的文本文件:

This is just
an example of
a textfile

并希望找到不包含"e"的所有单词的总和。此总和将针对每一行打印,并且应该是该行中单词的总和。

目前我有这个:

with open(sys.argv[1], "r") as f:
count = 0
for line in f:
words = line.split()
for word in words:
if "e" not in word:
for char in word:
count += 1
print(count)

我得到的输出是:

4
6
10
12
14
15

何时应为:

10
4
1

您可以使用内置的len来获取字符串的长度。您获得的数字比预期大的原因是您没有重置每行的count变量,而且您在每个单词之后打印,而不是每一行。

with open(sys.argv[1], "r") as f:
for line in f:
count = 0
words = line.split()
for word in words:
if "e" not in word: 
count += len(word)
print(count)

您可以更紧凑地将其编写为

with open(sys.argv[1], "r") as f:
for line in f:
print(sum(len(word) for word in line.split() if 'e' not in word))

最新更新