def function(a,b):
"""where a is a sentence and b is the target number.
The function will return to you each word in the
given sentence that occurs exactly b times."""
为此,我们必须做到以下几点:
将句子转换为单词列表,并删除标点、大小写和空格。你知道吗
重复句子中每个唯一的单词,如果它在句子中出现的次数正好b就打印出来
把这些放在一起形成一个函数
所以在您的示例中,您的句子是“one one was a racemarse two two was one too”,并且您要查找正好出现3次的所有单词,因此函数应该返回单词“one”
for word in set(wordlist):
if wordlist.count(word)==b:
print word
第三步-
现在我将把所有这些放在一起创建我的函数:
import re
def repeat_word_count(a,b):
wordlist=[i.lower() for i in re.findall(r"[\w']+",a)]
for word in set(wordlist):
if wordlist.count(word)==b:
print word
我想我知道你想做什么,在没有看到你的代码的情况下,我无法指出你到底哪里出错了,所以我将带你一步一步地创建这个函数,你应该能够找出你哪里出错了。你知道吗
我想你是想创造这个:
为此,我们必须做到以下几点:
所以在您的示例中,您的句子是“one one was a racemarse two two was one too”,并且您要查找正好出现3次的所有单词,因此函数应该返回单词“one”
我们一步一步地看。你知道吗
第一步- 我们必须把一个或多个句子转换成一个单词表。因为我不知道你是否会使用带有标点和/或大写的句子,我不得不假设这是可能的,并计划处理它们。我们将不得不从列表中省略任何标点符号/空格,如果每个单词中的所有字母恰好有大写字母,我们也将它们改为小写,因为即使“Cat”和“Cat”是同一个单词,根据计算机大脑,“Cat”并不等于以下任何一个:
因此,如果我们使用“一个一是赛马,两个二也是一”,作为我们的输入,我们需要处理空格、标点和大写。幸运的是,通过使用regular expression和list comprehension清除所有垃圾并创建单词列表,所有这些工作都可以用两行代码完成。你知道吗
这是我们的词汇表:
第二步- 现在我们需要遍历单词列表中每个唯一的单词,看看它是否精确地出现b次。由于我们只需要唯一的单词,我们可以创建一个只包含每个单词一次的列表,方法是将单词列表从列表转换为集合,循环遍历集合中的每个单词,并计算它们在单词列表中出现的次数。任何发生次数正好b的都是我们的解决方案。我不太清楚你是怎么想返回结果的,但我假设你想让符合条件的每个单词一次打印一个。你知道吗
第三步-
现在我将把所有这些放在一起创建我的函数:
我希望这能帮助你更好地理解
相关问题 更多 >
编程相关推荐