Pourquoi «www» .count («ww») renvoie 1 et non 2?

Dans mon code:

>> s = 'abacaba' >> s.count('aba') >> 2 

Pour le code ci-dessus, j’obtiens la bonne réponse car «aba» apparaît 2 fois dans la chaîne s .

Mais pour le cas suivant:

 >> s = 'www' >> s.count('ww') >> 1 

Dans ce cas, je m’attends à ce que s.count('ww') retourne 2 . Mais il retourne 1 .

Pourquoi?

Lire les documents :

Renvoie le nombre d’occurrences ( non chevauchantes ) de la sous-chaîne dans la chaîne s[start:end] . Les valeurs par défaut pour le début et la fin et l’interprétation des valeurs négatives sont les mêmes que pour les tranches.

Étant donné que “ww” est associé pour la première fois, il procède à partir du troisième “w” et ne correspond pas à “ww”.

ssortingng.count(s, sub[, start[, end]]) :

Renvoie le nombre d’occurrences (non chevauchantes) de la sous-chaîne dans la chaîne s [début: fin]. Les valeurs par défaut pour le début et la fin et l’interprétation des valeurs négatives sont les mêmes que pour les tranches.

source: https://docs.python.org/2/library/ssortingng.html

Essayez simplement de penser comme:

Dans ce mot: “abacaba”, combien de mots “aba” qui ne se chevauchent pas voyez-vous? Je vois 2. Et je vois aussi un “c”.

Dans ce mot: “www” combien de mots “ww” non chevauchantes voyez-vous? Je vois 1. Et je vois aussi un “w”.

Pour une meilleure explication, pensez à supprimer l’instance lorsque vous voyez.

Pour “abacaba”, vous voyez “aba” et supprimez-le. maintenant il y a “caba”, vous voyez à nouveau “aba” et le supprimez. maintenant vous obtenez seulement “c”. vous voyez “aba” deux fois. Il en est de même pour le “www”, vous voyez “ww” une fois et le supprimez. maintenant vous ne voyez que “w”. vous avez vu “ww” une fois seulement.

Ca a du sens.