Skip to main content
 首页 » 编程设计

python之如何返回在文本中出现 n 次或多次的单词列表

2025年05月04日14haluo1

我正在尝试编写一个函数,它接受一个字符串 text 和一个正整数 n,并将文本转换为单词列表。它必须返回一个单词列表,并在 text 中出现 n 或更多次。我正在尝试使用字典来完成此任务。

我要返回的内容如下:

>>> repeat_word_count("buffalo buffalo buffalo buffalo", 2) 
['buffalo'] 
>>> repeat_word_count("one one was a racehorse two two was one too", 3) 
['one'] 
>>> repeat_word_count("how much wood could a wood chuck chuck", 1) 
['a', 'chuck', 'could', 'how', 'much', 'wood'] 

我一直在使用字典来计算每个单词在文本中出现的次数。这是我目前所拥有的:

def repeat_word_count(text, n): 
 
    my_string = text.split() 
    my_dict = {} 
    for word in my_string: 
        if word in my_dict: 
            my_dict[word] += 1 
        else: 
            my_dict[word] = 1 
 
    for key, value in my_dict.items(): 
        if value >= n: 
            return sorted(my_dict.keys()) 

我知道第二个“for”循环不正确,但我不知道如何检查 my_dict 的值是否大于或等于 n .到目前为止,我的代码运行得不是很好。任何帮助都会很棒。

请您参考如下方法:

将最终的 for 循环替换为以下内容:

return [key for key, value in my_dict.items() if value >= n] 

必要时你也可以排序:

result = [key for key, value in my_dict.items() if value >= n] 
result.sort() 
return result