python - 如何计算单词在句子中出现的次数?

标签 python string function

所以我已经学习 Python 几个月了,想知道如何编写一个函数来计算单词在句子中出现的次数。如果有人能给我一个逐步的方法,我将不胜感激。

最佳答案

快速回答:

def count_occurrences(word, sentence):
    return sentence.lower().split().count(word)

'some string.split() 会将空格(空格、制表符和换行符)上的字符串拆分为单词列表。然后 ['some', 'string'].count(item) 返回 item 在列表中出现的次数。

这不处理删除标点符号。您可以使用 string.maketrans 来做到这一点和 str.translate .

# Make collection of chars to keep (don't translate them)
import string
keep = string.lowercase + string.digits + string.whitespace
table = string.maketrans(keep, keep)
delete = ''.join(set(string.printable) - set(keep))

def count_occurrences(word, sentence):
    return sentence.lower().translate(table, delete).split().count(word)

这里的关键是我们构造了字符串delete,这样它就包含了除字母、数字和空格之外的所有ascii 字符。然后 str.translate 在这种情况下采用不更改字符串的转换表,但也需要去除一串字符。

关于python - 如何计算单词在句子中出现的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272358/

相关文章:

python - 在包含字符串列表的 Series 上使用 Pandas 字符串方法 'contains'

c++ - 如何优化这个程序?

c - "expected expression before char"内部函数

python - 使用 Python range 内置函数从整数向后计数,与解析树相关

javascript - 对 "softBind"函数如何工作的困惑

python - 在我的网页抓取程序中提取第一个和最后一个页码时如何修复 "List index out of range"错误?

python - 如何防止 Python 的 os.walk 遍历挂载点?

python - 使用管道表达 Pandas 子集

android - buildozer for android 无法构建我的应用程序

string - 如何将字符串列表转换为方案中的一个字符串?