在 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(使用前将#替换为@)