Python Counter: cómo contar elementos con esta subclase
La clase Counter
de Python se utiliza para contar elementos en un contenedor. Es una subclase de Dictionary que tiene numerosos usos en combinación con diferentes métodos.
¿Qué es Python Counter
?
Counter
de Python es una herramienta útil que puede contar varios elementos en una lista y muestra con qué frecuencia se producen estos elementos. Es una subclase de Dictionary. Aunque esta tarea se puede realizar fácil y manualmente para una secuencia corta de valores, es mucho más complicado para conjuntos de datos largos. El propio Counter
es una variable entera que tiene el valor inicial “0”. Un único contador indica la frecuencia de un objeto. Si quieres tener en cuenta varios objetos diferentes, utiliza un contador distinto para cada uno de ellos.
La clase Counter
puede aplicarse a listas, tuplas de Python, Dictionaries y cadenas de Python. Su sintaxis es la siguiente:
En los siguientes apartados te mostraremos cómo puede utilizarse Counter
en la práctica con algunos ejemplos sencillos.
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos
Counter
con una lista
En el primer ejemplo, creamos una lista simple con diferentes valores. El aspecto es el siguiente:
La lista tiene tres elementos diferentes: a
, b
y c
. Para averiguar la frecuencia con la que aparece cada uno de estos elementos, utilizamos Counter
. El resultado sería el siguiente:
Para utilizar Counter
, primero hay que importar la clase. El resultado se muestra con print
. El código completo para este ejemplo sería el siguiente:
El resultado sería el siguiente:
Así funciona la clase Counter
con una tupla
En el segundo ejemplo procedemos de forma muy similar. Esta vez el contador se va a aplicar a una tupla. Las tuplas se utilizan en Python para almacenar varios valores en una variable. Como se trata de una agrupación ordenada de objetos, se tiene en cuenta el orden. Los objetos se colocan entre corchetes y se separan por comas. El código tendría la siguiente forma:
El resultado sería el siguiente:
Utilización en la clase Dictionary
En un Dictionary, los elementos se almacenan como pares clave-valor y se colocan entre llaves. Si utilizas el contador para el Dictionary, éste se convierte en un objeto hashtable. Los elementos se convierten en claves y sus valores en el número del diccionario original. Para nuestro ejemplo anterior, se vería así:
El resultado sería el siguiente:
Alcanza tu objetivo en solo tres pasos: con Deploy Now de IONOS, solo tienes que conectar tu repositorio, realizar la compilación automáticamente y acceder a una infraestructura fiable. Benefíciate de las mejores tarifas y el asesoramiento de expertos.
Counter
de Python en combinación con una cadena simple
Puedes hacerte una idea del ahorro de tiempo y la facilidad de trabajo que puede ofrecer Counter
aplicando la clase a una cadena. Una cadena es una secuencia de caracteres marcados por comillas. También se tienen en cuenta los espacios. Elegimos la siguiente cadena para nuestro ejemplo:
Ahora cada carácter se cuenta como una subcadena. Por lo tanto, el resultado podría ser el siguiente:
Extensiones con .update()
Las opciones que ofrece Counter
son diversas. Por ejemplo, también es posible ampliar un contador existente. Para ello, utiliza .update()
y conecta esta extensión al contador. Primero creamos un código simple según el principio anterior, por el que no marcamos la cadena para un cambio:
Nuestro resultado es el siguiente:
Si ahora aplicamos .update()
, el código queda así:
Esto nos da un resultado actualizado:
Acceder a los valores Counter
Tienes la opción de acceder a los valores de Counter
, ya que esta clase funciona de forma similar a Dictionary
. En el siguiente ejemplo de código te mostramos algunas variaciones y las correspondientes salidas. Aquí, las “letters” actúan como claves (keys) y los “counts” como valores (values).
Este es el aspecto que tendría un ejemplo con el método .keys()
:
Este es un ejemplo con .values()
:
Así sería con el método .items()
:
Eliminar elementos de la clase
Si quieres borrar un elemento de Counter
, del
es la opción adecuada para ello:
El resultado será el siguiente:
Determinar la mayor acumulación con most_common(n)
Con most_common(n)
para Counter
puedes averiguar qué elementos son más y menos comunes. Consideremos un ejemplo en el que un producto aparece en diferentes colores. Junto a los colores se indica la frecuencia con la que el producto sigue en stock en la variante correspondiente. Un valor negativo significa que ya no existe el artículo correspondiente en el almacén, pero que, sin embargo, esta variante ha sido objeto de un pedido anticipado. Si ahora queremos comprobar qué variante tiene todavía más artículos en stock, podemos utilizar este código:
El resultado es el siguiente:
También podemos mostrar el menor número de artículos. Para ello, cambiamos el código de la siguiente manera:
El resultado sería:
Cálculos aritméticos con Counter
Con Counter
también puedes llevar a cabo cálculos aritméticos. Sin embargo, es importante tener en cuenta que solo se obtienen valores positivos. En el siguiente código probamos algunos tipos de cálculo:
Una suma simple:
Así sería la resta:
Como el valor de “c” ahora sería negativo, no se incluye en el resultado.
Ordenar tipos de datos por frecuencia
Otra opción que ofrece la clase es una enumeración de tipos de datos en una carpeta. Como ejemplo, imaginemos una carpeta llamada “Imágenes” que contiene numerosos archivos diferentes con distintos tipos de datos. Utilizamos el siguiente código para una lista:
Excluir valores negativos y cero
Para eliminar valores cero o negativos con Counter
, utiliza este código:
El resultado sería el siguiente:
En nuestra Digital Guide encontrarás otros muchos artículos sobre este popular lenguaje de programación. Te explicamos, por ejemplo, qué operadores Python existen, te guiamos a través de la instalación de Python y te mostramos los conceptos básicos para utilizar Python.