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