我试图计算以Python中特定关键字开头的短语的出现次数:
if q.startswith('how many'):
te[i] += 1
答案 0 :(得分:0)
您的if
构造没问题,但您正在将不同的结果计数记录到同一变量,并且需要更改:
patterns = ['how many', 'how much', 'how']
textline = 'how much is the fish'
def pattern_count(textline, patterns):
d = {pat:0 for pat in patterns}
for pat in patterns:
if textline.startswith(pat):
d[pat] = 1
return d
te = pattern_count(textline, patterns)
print(te)
{'how': 0, 'how many': 0, 'how much': 1}
上面的代码假设textline
只是一个字符串,你真的想检查它的第一行。或意图不同?
答案 1 :(得分:0)
如果q
是一串短语,我认为您可以执行类似
te = {'how many': 0, 'how much': 0, 'how': 0}
te['how many'] = te['how many'] + q.count('how many')
q.replace('how many', '')
te['how much'] = te['how much'] + q.count('how much')
q.replace('how much', '')
te['how'] = te['how'] + q.count('how')
q.replace('how', '')