¿Qué es Python Counter?
Python Counter es un contenedor que contendrá el recuento de cada uno de los elementos presentes en el contenedor. El contador es una subclase disponible dentro de la clase de diccionario.
El contador es una subclase disponible dentro de la clase de diccionario. Con la herramienta Contador de Python, puede contar los pares clave-valor en un objeto, también llamado objeto de tabla hash.
¿Por qué utilizar Python Counter?
Estas son las principales razones para usar Python 3 Counter:
- El contador contiene los datos en una colección desordenada, al igual que los objetos de tabla hash. Los elementos aquí representan las claves y el recuento como valores.
- Le permite contar los elementos en una lista iterable.
- Las operaciones aritméticas como suma, resta, intersección y unión se pueden realizar fácilmente en un contador.
- Un contador también puede contar elementos de otro contador
En este tutorial de Python aprenderá:
- ¿Qué es Python Counter?
- ¿Por qué utilizar Python Counter?
- Introducción a Python Counter
- Contador con cuerda
- Contador con lista
- Contador con diccionario
- Contador con tupla
- Acceso, inicialización y actualización de contadores
- Eliminar un elemento del contador
- Operación aritmética en Python Counter
- Métodos disponibles en Python Counter
- Reasignación de recuentos en Python
- Obtener y establecer el recuento de elementos usando Counter
Introducción a Python Counter
Python Counter toma como entrada una lista, tupla, diccionario, cadena, que son todos objetos iterables, y le dará una salida que tendrá el recuento de cada elemento.
Sintaxis:
Counter(list)
Considere que tiene la siguiente lista:
list1 = ['x','y','z','x','x','x','y', 'z']
La lista tiene los elementos x, y y z. Cuando use Contador en esta lista, contará cuántas veces x, y y z están presentes. La salida si se usa el contador en list1 debería ser algo como:
Counter({'x': 4, 'y': 2, 'z': 2})
Entonces tenemos el recuento de x como 4, y como 2 y z como 2.
Para hacer uso de Counter, primero debemos importarlo como se muestra en el siguiente ejemplo:
from collections import Counter
Aquí hay un ejemplo simple, que muestra el funcionamiento del módulo Contador.
from collections import Counterlist1 = ['x','y','z','x','x','x','y', 'z']print(Counter(list1))
Producción:
Counter({'x': 4, 'y': 2, 'z': 2})
Contador con cuerda
En Python, todo es un objeto y la cadena también es un objeto. La cadena de Python se puede crear simplemente encerrando caracteres entre comillas dobles. Python no admite un tipo de carácter. Estos se tratan como cadenas de longitud uno, también consideradas como una subcadena.
En el siguiente ejemplo, se pasa una cadena a Counter. Devuelve el formato de diccionario, con un par clave / valor donde la clave es el elemento y el valor es el recuento. También considera el espacio como un elemento y da el recuento de espacios en la cadena.
Ejemplo:
from collections import Countermy_str = "Welcome to Guru99 Tutorials!"print(Counter(my_str))
Producción:
Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})
Contador con lista
Una lista es un objeto iterable que tiene sus elementos entre corchetes.
Los elementos de la lista cuando se entreguen al contador se convertirán en objetos de tabla hash en los que los elementos se convertirán en claves y los valores serán el recuento de los elementos de la lista proporcionada.
Por ejemplo, ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']. Una vez que le dé a la lista el contador, le dará el recuento de cada elemento en la lista.
from collections import Counterlist1 = ['x','y','z','x','x','x','y','z']print(Counter(list1))
Producción:
Counter({'x': 4, 'y': 2, 'z': 2})
Contador con diccionario
Un diccionario tiene elementos como par clave / valor, y están escritos entre corchetes.
Una vez que el diccionario se entrega al Contador, se convertirá en objetos de tabla hash donde los elementos se convertirán en claves y los valores serán el recuento de los elementos del diccionario dado.
Por ejemplo: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. La función Contador intentará encontrar el recuento de cada una de las claves en el diccionario dado.
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2}print(Counter(dict1))
Producción:
Counter({'x': 4, 'y': 2, 'z': 2})
Contador con tupla
Tuple es una colección de objetos separados por comas dentro de corchetes. Counter le dará el recuento de cada uno de los elementos en la tupla dada.
Una vez que la tupla se entregue al contador, se convertirá en un objeto de tabla hash en el que los elementos se convertirán en claves y los valores serán el recuento de los elementos de la tupla dada.
from collections import Countertuple1 = ('x','y','z','x','x','x','y','z')print(Counter(tuple1))
Producción:
Counter({'x': 4, 'y': 2, 'z': 2})
Acceso, inicialización y actualización de contadores
Contador de inicialización
Un contador se puede inicializar pasando un valor de cadena, una lista, un diccionario o una tupla como se muestra a continuación:
from collections import Counterprint(Counter("Welcome to Guru99 Tutorials!")) #using stringprint(Counter(['x','y','z','x','x','x','y', 'z'])) #using listprint(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionaryprint(Counter(('x','y','z','x','x','x','y', 'z'))) #using tuple
También puede inicializar un contador vacío como se muestra a continuación:
from collections import Counter_count = Counter()
Contador de actualización
Puede agregar valores al Contador usando el método update ().
_count.update('Welcome to Guru99 Tutorials!')
El código final es:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print(_count)
La salida es:
Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})
Accediendo al contador
Para obtener los valores del Contador, puede hacer lo siguiente:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print('%s : %d' % ('u', _count['u']))print('\n')for char in 'Guru':print('%s : %d' % (char, _count[char]))
Producción:
u : 3G : 1u : 3r : 2u : 3
Eliminar un elemento del contador
Para eliminar un elemento de Counter, puede hacer uso de del, como se muestra en el siguiente ejemplo:
Ejemplo:
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2}del dict1["x"]print(Counter(dict1))
Producción:
Counter({'y': 2, 'z': 2})
Operación aritmética en Python Counter
Las operaciones aritméticas como la suma, resta, intersección y unión se pueden realizar en un contador como se muestra en el siguiente ejemplo:
Ejemplo:
from collections import Countercounter1 = Counter({'x': 4, 'y': 2, 'z': -2})counter2 = Counter({'x1': -12, 'y': 5, 'z':4 })#Additioncounter3 = counter1 + counter2 # only the values that are positive will be returned.print(counter3)#Subtractioncounter4 = counter1 - counter2 # all -ve numbers are excluded.For example z will be z = -2-4=-6, since it is -ve value it is not shown in the outputprint(counter4)#Intersectioncounter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2print(counter5)#Unioncounter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2print(counter6)
Producción:
Counter({'y': 7, 'x': 4, 'z': 2})Counter({'x1': 12, 'x': 4})Counter({'y': 2})Counter({'y': 5, 'x': 4, 'z': 4})
Métodos disponibles en Python Counter
Hay algunos métodos importantes disponibles con Counter, aquí está la lista de los mismos:
- elementos () : este método le devolverá todos los elementos con recuento> 0. Los elementos con conteo 0 o -1 no se devolverán.
- most_common (valor): este método le devolverá los elementos más comunes de la lista Contador.
- restar (): este método se utiliza para deducir los elementos de otro contador.
- update (): este método se utiliza para actualizar los elementos de otro contador.
Ejemplo: elementos ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0})_elements = counter1.elements() # will give you all elements with positive value and count>0for a in _elements:print(a)
Producción:
xxxxxyy
Ejemplo: most_common (valor)
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})common_element = counter1.most_common(2) # The dictionary will be sorted as per the most common element first followed by next.print(common_element)common_element1 = counter1.most_common() # if the value is not given to most_common , it will sort the dictionary and give the most common elements from the start.The last element will be the least common element.print(common_element1)
Producción:
[('y', 12), ('x', 5)][('y', 12), ('x', 5), ('x1', 0), ('z', -2)]
Ejemplo: restar ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.subtract(counter2)print(counter1)
Producción:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})
Ejemplo: update ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.update(counter2)print(counter1)
Producción:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})
Reasignación de recuentos en Python
Puede reasignar los recuentos del contador como se muestra a continuación:
Considere que tiene un diccionario como: {'x': 5, 'y': 12, 'z': -2, 'x1': 0}
Puede cambiar el recuento del elemento como se muestra a continuación:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter1['y'] = 20print(counter1)
Salida: Después de ejecutar, verá que el recuento y se cambia de 12 a 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Obtener y establecer el recuento de elementos usando Counter
Para obtener el recuento de un elemento usando Counter, puede hacer lo siguiente:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y']) # this will give you the count of element 'y'
Producción:
12
Para establecer el recuento del elemento, puede hacer lo siguiente:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y'])counter1['y'] = 20counter1['y1'] = 10print(counter1)
Producción:
12Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Resumen:
- Counter es un contenedor que contendrá el recuento de cada uno de los elementos presentes en el contenedor.
- Counter es una subclase disponible dentro de la clase de diccionario.
- Con la herramienta Contador de Python, puede contar los pares clave-valor en un objeto, también llamado objeto de tabla hash.
- El contador contiene los datos en una colección desordenada, al igual que los objetos de tabla hash. Los elementos aquí representan las claves y el recuento como valores.
- Le permite contar los elementos en una lista iterable.
- Las operaciones aritméticas como suma, resta, intersección y unión se pueden realizar fácilmente en un contador.
- Un contador también puede contar elementos de otro contador.
- Los métodos importantes disponibles en un contador son elementos (), most_common (valor), restar () y actualizar ().
- Un contador se puede utilizar en una cadena, lista, diccionario y tupla.