我正在尝试编写一个代码,用于计算前缀,后缀&和根。 我需要知道的是如何计算以某个字符串开头或结尾的单词数,例如' co'。
这是我到目前为止所做的。
SWL=open('mediumWordList.txt').readlines()
for x in SWL:
x.lower
if x.startswith('co'):
a=x.count(x)
while a==True:
a=+1
print a
我从中得到的只是一个无限循环。
答案 0 :(得分:4)
首先,作为处理文件的更加pythonic方式,您可以使用with
语句打开在块结束时自动关闭文件的文件。
此外,您不需要使用readlines
方法加载内存中的所有行,只需循环遍历文件对象即可。
关于计算将行拆分为单词所需的单词,然后使用str.stratswith
和str.endswith
根据您的条件计算单词。
因此,您可以在sum
函数中使用生成器表达式来计算单词的数量:
with open('mediumWordList.txt') as f:
sum(1 for line in f for word in line.split() if word.startswith('co'))
请注意,我们需要拆分该行以访问这些字词,如果您不拆分这些字符,则会循环显示该行的所有字符。
正如评论中建议的那样,您可以使用以下方法:
with open('mediumWordList.txt') as f:
sum(word.startswith('co') for line in f for word in line.split())
答案 1 :(得分:1)
您可以尝试从集合中使用Counter类。例如,要计算Bar.txt中的'Foo':
from collections import Counter
with open('Bar.txt') as barF:
words = [word for line in barF.readlines() for word in line.split()]
c = Counter(words)
print c['Foo']