我想知道是否有人可以帮我弄清楚如何编写一段代码来分析用户输入的输入并计算特定单词发生的次数。
例如,提示用户输入字符串。 bobobob中的类型。我们正在搜索此代码中出现“bob”的次数,因此答案为3。
如果可以在没有任何导入的for循环/ if-else语句中完成,我想看看如何。
这就是我所拥有的,并且由于某种原因,它在大多数测试中都会出现短缺
s = raw_input("string: ")
count = len(s.split("bob"))
print count
例如,如果你测试hoboboobbobbbobobbopbbobbbpbooboboboobbobovob 你得到7而不是8。
我需要能够在没有正则表达式或任何其他导入的情况下执行此操作。
答案 0 :(得分:1)
如果您只是寻找快速回答,这将有效!
t = "hoboboobbobbbobobbopbbobbbpbooboboboobbobovob"
l = "bob"
count = 0
for x in range(len(t)-len(l)+1):
if (l == t[x:x+len(l)]):
count += 1
print(count)
您可以将其转换为函数并在其中弹出而不是s.split()
答案 1 :(得分:0)
def substring_counter(string, sub_string):
count = 0
for i in range(len(string)-len(sub_string)):
if string[i:i+len(sub_string)] == sub_string:
count += 1
return count
使用列表理解:
def substring_counter_lc(s, c):
return len([i for i in range(len(s)-len(c)) if s[i:i+len(c)] == c])
行动中:
>>> substring_counter('hoboboobbobbbobobbopbbobbbpbooboboboobbobovob', 'bob')
8
>>> substring_counter_lc('hoboboobbobbbobobbopbbobbbpbooboboboobbobovob', 'bob')
8