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

2024-06-20

在 Python 2.7 中,给定以下字符串:

Spot是一只棕色的狗。斑点有棕色的头发。斑点的头发是棕色的。

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

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

Thanks!


这符合您的要求,但请注意,它还会计算“毛茸茸的”、“棕色的”等单词。

>>> 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包 http://nltk.org/

>>> import nltk  # Natural Language Toolkit
>>> from collections import Counter
>>> sum(x in {"Spot", "brown", "hair"} for x in nltk.wordpunct_tokenize(s))
8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算另一个字符串中多个字符串的出现次数 的相关文章

随机推荐