我正在尝试编写一个函数,它接受一个字符串 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
