usar length len index funciona como array python string count

python - length - ¿Por qué "www".count("ww") devuelve 1 y no 2?



length python (3)

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

Devuelve el número de apariciones (no superpuestas) de la subcadena sub en la cadena s [inicio: final]. Los valores predeterminados para el inicio y el final y la interpretación de los valores negativos son los mismos que para los segmentos.

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

Esta pregunta ya tiene una respuesta aquí:

En mi código:

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

Para el código anterior, obtengo la respuesta correcta, ya que ''aba'' ocurre 2 veces en la cadena s .

Pero para el siguiente caso:

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

En este caso, espero que s.count(''ww'') devuelva 2 . Pero devuelve 1 .

¿Por qué?


Lea los docs :

Devuelve el número de apariciones ( no superpuestas ) de la subcadena sub en la cadena s[start:end] . Los valores predeterminados para el inicio y el final y la interpretación de los valores negativos son los mismos que para los segmentos.

Dado que "ww" se compara por primera vez, procede de la tercera "w" y no coincide con "ww".


Solo trata de pensarlo como:

En esta palabra: "abacaba", ¿cuántas palabras "aba" que no se superponen ves? Veo 2. Y también veo una "c".

En esta palabra: "www" ¿cuántas palabras "ww" no superpuestas ve? Veo 1. Y también veo una "w".

Para una mejor explicación, piense que está eliminando la instancia cuando ve.

Para "abacaba" ves "aba" y elimínalo. Ahora hay "caba", ves "aba" otra vez y lo borras. ahora solo obtienes "c". ves "aba" dos veces Es igual para el "www", ves "ww" una vez y lo eliminas. ahora solo ves "w". Usted ha visto "ww" una sola vez.

Que tiene sentido.