0

Python 2.7 を使用して、「bobbbobobboobobookobobbobbboj」という語句で「bob」が出現する回数を数えようとしました。これを行うために、以下のコードを書きました。

  b=0
  string='bobbbobobboobobookobobbobbboj'
  string = string.lower()

  for i in string:
     if(([i:i+3]=="bob") or ([i:i+3]=="BOB")'):
        b=b+1

  print ("Number of times bob occurs is:%s" %b)

ただし、実行すると0が出力されます。

4

8 に答える 8

1
>>> s = 'bobbbobobboobobookobobbobbboj'
>>> term = 'bob'
sum(1 for i, j in enumerate(s) if s[i:i+len(term)] == term)
6
于 2013-10-28T02:31:12.120 に答える
0
def bobcount(x):
    bobcounter = 0
    for i in range(len(x)):
        if (x[i:i+3]=="bob") or (x[i:i+3]=="BOB"):
            bobcounter = bobcounter + 1
    return bobcounter

これは、ポールの答えの延長です。コードの結果は次のとおりです。

bobcount("bobobobBOBBOB")
5
于 2016-10-23T10:09:03.783 に答える
0

これは、リンクされた質問に対するブランドンの回答に基づく実装です。

def MIT(full_string, substring):
    results = []
    sub_len = len(substring)
    for i in range(len(full_string)):
    # range returns a list of values from 0 to (len(full_string) - 1)
        if full_string[i:i+sub_len] == substring:
        # this is slice notation;
        # it means take characters i up to (but not including) i
        # + the length of th substring
            results.append(i)
    return results

full_string = "bobBOBBobBoj"
lower_substring = "bob"
upper_substring = "BOB"
lower_occurrence_array = MIT(full_string, lower_substring)
upper_occurrence_array = MIT(full_string, upper_substring)
number_of_lower_occurrences = len(lower_occurrence_array)
number_of_upper_occurrences = len(upper_occurrence_array)
number_of_occurrences = number_of_lower_occurrences + number_of_upper_occurrences

print ("Number of times bob occurs is: %s" %number_of_occurrences)

結果は

ボブの出現回数:2回

主な要点はすでにポールの答えにありますが、これが役立つことを願っています.

于 2013-10-28T02:07:43.913 に答える
0

私は少し遅れていると思いますが、これを試すことができます:

from re import findall

    def bobcount(word):
        return len(findall(r'(bob)', word.lower()))
于 2017-06-03T05:38:02.827 に答える
0
start=0
count=0 
while start<=len(s):
    n=s.find('b',start,len(s))
    prnt=(s[start:start+3])
    if prnt =='bob':
       start=n+2 
       count+=1
    else:
        start+=1        
print count   
于 2015-06-21T15:24:35.953 に答える