我正在做一些事情,首先我必须分割一个字符串(这是一个paragph),然后取下每个字符串的标点符号。为此,我执行了以下操作:
a = string1.split()
print(a)
punc = "?.,!"
a = ["".join(c for c in s if c not in punc) for s in a]
print(a)
在此之后,我必须计算以“ ing”结尾的单词数。我尝试了各种方法,但由于某种原因,它们总是在应计数为10时计数为0。这是我最近的尝试:
suffix = "ing"
suffix_count = 0
if any (''.endswith(suffix) for s in a):
suffix_count += 1
print ("Found {} words ending in ing".format(suffix_count))
我究竟做错了什么?
python大神给出的解决方案
代替
if any (''.endswith(suffix) for s in a):
suffix_count += 1
尝试
suffix_count = sum(1 for s in a if s.endswith(suffix))
您的代码存在的问题是,您正在检查空字符串是否以“后缀”结尾(始终为假),但是即使您没做错检查:您只是一次增加了suffix_count,与多少个以“'”结尾的字符串无关后缀'。