Python: Te repites más que el ajo

Objetivo: aprender a contar las veces que un determinado elemento se repite dentro de una secuencia en Python.

Tarde o temprano tendrás la necesidad de saber cuántas veces ocurre una letra o palabra en determinada frase, o las veces que un elemento aparece en una lista o tupla.

Estos tres tipos, strings, listas y tuplas, pertenecen a la categoría de secuencias en Python, y como buenos amigos, comparten una serie de métodos comunes.

Uno de ellos es count(), que nos sirve para saber cuántas veces sucede un elemento dentro de una secuencia.

Imagínate la siguiente lista:

>>> lista = [3, 7, 6, 2, 1, 7, 3, 1, 1, 5]

¿Cuántas veces aparece el número 1? ¿Y el 4?

>>> lista.count(1)
3
>>> lista.count(4)
0

Con las tuplas es exactamente lo mismo.

Consideremos ahora una cadena de caracteres:

>>> frase = 'la casa de la pradera'

¿Cuántas aes hay? ¿Cuántas veces está la cadena ‘la’?

>>> frase.count('a')
6
>>> frase.count('la')
2

Voy a proponerte un problema para que lo madures. Toma la cadena s = 'lalalala'

¿Qué crees que devolverá s.count('ala')? ¿Por qué?

El método count(), aplicado a un string, tiene algunas sutilezas más respecto a su versión para listas o tuplas. Hablaremos de ellas en otro momento.

Anoche, mientras trabajaba en un programa, me encontré con una lista de 325 strings en la que sabía a ciencia cierta que deberían haber sido 324. Uno de ellos estaba duplicado y era preciso saber cuál.

Hay muchas maneras de resolver este problema sencillo, sin necesidad de ponerme a buscar a pelo de uno en uno. Una de ellas emplea el método count().

for elemento in lista:
    if lista.count(elemento) > 1:
        print(elemento)

Recorremos de principio a fin la lista con un bucle for y en cada parada hacemos una comprobación: si el número de veces que aparece ese elemento es mayor que uno, lo mostramos.

Tras lo cual apareció el polizón (que, naturalmente, se mostró dos veces) y pude deshacerme de él.

Javier Montero Gabarró


Python: Te repites más que el ajo


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Deja un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies