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.
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.