在Python 2.7,:计数出现在给定的这串另一个字符串
Spot是一条黄狗。斑点有棕色头发。斑点的头发是棕色的。
什么是找到字符串中“Spot”,“brown”和“hair”的总和的最佳方式?在这个例子中,它会返回8.
我正在寻找像string.count("Spot","brown","hair")
之类的东西,但可以与元组或列表中的“要找到的字符串”一起使用。
谢谢!这将在数由1自'brown.'
和'brown'
是独立的计数器项
s = 'Spot is a brown dog. Spot has brown hair. The hair of Spot is brown.'
words_we_want = ("Spot","brown","hair")
from collections import Counter
data = Counter(s.split())
print (sum(data[word] for word in words_we_want))
注:
你想在“大闸蟹”算“毛”? nltk答案不计算它,而'count()'和正则表达式应答。 – EOL 2013-03-19 01:11:18
通过添加单词边界('\ b')很容易通过'regex'排除它。 – mgilson 2013-03-19 01:13:10
的确,但这会改变你的答案。 :) – EOL 2013-03-19 01:21:41