Skip to main content
 首页 » 编程设计

python之计算多个字符串在另一个字符串中的出现次数

2025年05月04日20del

在 Python 2.7 中,给定这个字符串:

Spot is a brown dog. Spot has brown hair. The hair of Spot is brown.

找出字符串中“Spot”、“brown”和“hair”的总和的最佳方法是什么?在示例中,它将返回 8。

我正在寻找类似 string.count("Spot","brown","hair") 的东西,但与元组或列表中的“要找到的字符串”一起使用。

谢谢!

请您参考如下方法:

这会按照您的要求进行,但请注意,它还会对“毛茸茸”、“棕色”等字词进行计数。

>>> s = "Spot is a brown dog. Spot has brown hair. The hair of Spot is brown." 
>>> sum(s.count(x) for x in ("Spot", "brown", "hair")) 
8 

也可以写成map

>>> sum(map(s.count, ("Spot", "brown", "hair"))) 
8 

更强大的解决方案可能使用 nltk package

>>> import nltk  # Natural Language Toolkit 
>>> from collections import Counter 
>>> sum(x in {"Spot", "brown", "hair"} for x in nltk.wordpunct_tokenize(s)) 
8