87 votes

Déterminer le nombre d'occurrences d'une sous-chaîne dans une chaîne de caractères en Python

J'essaie de savoir combien de fois une chaîne de caractères apparaît dans une autre chaîne. Par exemple :

nStr = '000123000123'

Disons que la chaîne de caractères que je veux trouver est 123. Il est évident qu'elle apparaît deux fois dans nStr, mais j'ai du mal à mettre en œuvre cette logique dans Python. Ce que j'ai pour l'instant :

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

La réponse qu'il devrait renvoyer est 2. Je suis coincé dans une boucle infinie pour le moment.

Je viens d'apprendre que le comptage est une bien meilleure façon de procéder, mais par curiosité, quelqu'un voit-il une façon de procéder similaire à ce que j'ai déjà obtenu ?

0voto

ruddy simonpour Points 73

D'habitude, j'utilise Enumerate pour ce genre de problèmes :

def count_substring(string, sub_string):
        count = 0
        for i, j in enumerate(string):
            if sub_string in string[i:i+3]:
                count = count + 1
        return count

-1voto

Prince_Israel Points 1

Def count(sub_string,string) :

count = 0
ind = string.find(sub_string)

while True:
    if ind > -1:
        count += 1
        ind = string.find(sub_string,ind + 1)
    else:
        break
return count

-1voto

def count_substring(string, sub_string):
    count = 0
    len_sub = len(sub_string)
    for i in range(0,len(string)):
        if(string[i:i+len_sub] == sub_string):
            count+=1
    return count

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X