首页 > 解决方案 > 如何定义一个计算单词重复次数的函数

问题描述

我想做一个函数,输出它在句子中的次数列表

def words(text:str,number:int):
    text=text.split()
    for freq in text:
        print(freq,"," text.count(freq)

我知道这是不正确的,因为我希望输出看起来像

[(cat,4),(dog,10),(pig,3)] 

我不确定如何解决这个问题。我还希望它只允许它用分配给函数的数字来计算不同重复单词的数量

标签: pythonpython-3.x

解决方案


拆分字符串后,我创建了一个具有唯一条目的集合。有了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))

推荐阅读