1. ホーム
  2. python

[解決済み] Pythonで文字列中に部分文字列が何回出現するかを判定する

2023-08-19 01:47:03

質問

ある文字列がある文字列の中に何回現れるかを調べようとしています。例えば

nStr = '000123000123'

私が見つけたい文字列が123であるとします。明らかにそれはnStrで2回発生しますが、私はPythonにこのロジックを実装するのに苦労しています。私が今持っているもの。

pattern = '123'
count = a = 0
while pattern in nStr[a:]:
    a = nStr[a:].find(pattern)+1
    count += 1
return count

返すべき答えは2です。現在、無限ループに陥っています。

私はちょうどカウントがそれを行うためのはるかに良い方法であることを認識させられたが、好奇心で、私がすでに得たものと同様の方法を参照してください誰ですか?

どのように解決するのですか?

使用方法 str.count :

>>> nStr = '000123000123'
>>> nStr.count('123')
2

あなたのコードの作業バージョン。

nStr = '000123000123'
pattern = '123'
count = 0
flag = True
start = 0

while flag:
    a = nStr.find(pattern, start)  # find() returns -1 if the word is not found, 
    #start i the starting index from the search starts(default value is 0)
    if a == -1:          #if pattern not found set flag to False
        flag = False
    else:               # if word is found increase count and set starting index to a+1
        count += 1        
        start = a + 1
print(count)