40 votes

Pourquoi "www".count("ww") renvoie-t-il 1 et non 2 ?

Dans mon code :

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

Pour le code ci-dessus, j'obtiens la réponse correcte 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') retournera 2 . Mais il retourne 1 .

Pourquoi ?

165voto

Maroun Maroun Points 31217

Lire l'article docs :

Retourner le nombre de ( sans chevauchement ) occurrences de la sous-chaîne sub 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.

Puisque "ww" est le premier à correspondre, il procède à partir du troisième "w" et ne parvient pas à correspondre à "ww".

34voto

mutilis Points 266

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

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

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

9voto

cenk ebret Points 134

Essaie juste de penser comme ça :

Dans ce mot : "abacaba", combien de sans chevauchement Les mots "aba" que vous voyez ? J'en vois deux. Et je vois aussi un "c".

Dans ce mot : "www" combien sans chevauchement Les mots "ww" que vous voyez ? Je vois 1. Et je vois aussi un "w".

Pour une meilleure explication, pensez que vous supprimez l'instance lorsque vous voyez.

Pour "abacaba", vous voyez "aba" et le supprimez. maintenant il y a "caba", vous voyez "aba" encore une fois et le supprimez. maintenant vous avez seulement "c". vous avez vu "aba" deux fois. C'est la même chose pour le "www", vous voyez "ww" une fois et le supprimez. maintenant vous ne voyez que "w". vous avez vu "ww" une seule fois.

C'est logique.

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