python - 如何定义一个计算单词重复次数的函数
问题描述
我想做一个函数,输出它在句子中的次数列表
def words(text:str,number:int):
text=text.split()
for freq in text:
print(freq,"," text.count(freq)
我知道这是不正确的,因为我希望输出看起来像
[(cat,4),(dog,10),(pig,3)]
我不确定如何解决这个问题。我还希望它只允许它用分配给函数的数字来计算不同重复单词的数量
解决方案
拆分字符串后,我创建了一个具有唯一条目的集合。有了re.findall
您可以找到文本中每个单词的计数。该函数words
返回一个字典,其中单词为键,计数为值。
import re
def words(text:str):
textsp = text.split()
unique = set(textsp)
count = []
for word in unique:
count.append(len(re.findall(word, text)))
out = dict(zip(unique, count))
return out
te = "cat dog cat pig dog dog pig cat"
print(words(te))
推荐阅读
- git - 如何在 Genie Web 服务中动态加载不同版本的包?
- python - 在 Python 中生成原始毕达哥拉斯三元组的列表
- odbc - 如何解析json并根据传入的json数据创建触发器
- mysql - Mysql 得到一个转折的地方
- spring-cloud-dataflow - 在 SCDF 仪表板中启动任务时违反“task_metadata_fk”中的外键约束
- mule - 为什么我得到错误无法仅在一个环境中找到配置属性?
- mysql - Sequelize:添加备份数据库或多数据库
- android - 使用改造从服务器下载 pdf
- asp.net-mvc - Knockout 和 ASP.NET MVC 编辑表单在映射后显示重复行
- c# - 如何在单元测试中以管理员身份运行 sc.exe