Contador de Python en colecciones con ejemplo

¿Qué es un contador de Python?

Python Counter es un contenedor que llevará la cuenta de cada uno de los elementos 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 conocido como objeto de tabla hash.

¿Por qué usar un contador de Python?

Aquí hay algunas buenas razones para usar un contador de Python 3:

En este tutorial de Python aprenderá:

Introducción a Python Counter

Python Counter toma una lista, tupla, diccionario, cadena, todos los cuales son objetos variables, y le da una salida que contará cada elemento.

Sintaxis:


Counter(list)

Considere que tiene la siguiente lista:


list1 = ['x','y','z','x','x','x','y', 'z']

Los elementos son x, y y z en la lista. Cuando use Contador en esta lista, contará cuántas veces x, y y zi están presentes. La salida si se debe usar un contador en list1 debería ser como:


Counter({'x': 4, 'y': 2, 'z': 2})

Así que contamos x como 4, y como 2 y z como 2.

Para usar 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 Counter
list1 = ['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 una cadena también es un objeto. Se puede crear una cadena de Python simplemente encerrando caracteres entre comillas dobles. Python no admite el tipo de carácter. Estos se tratan como alambres de longitud uno, que también se consideran un sustrato.

En el siguiente ejemplo, se pasa un cable a un contador. Devuelve el formato del 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 un recuento de los espacios en la cadena.

Ejemplo:


from collections import Counter
my_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})

Enumerador con lista

Una lista cuyos elementos están entre corchetes es una variable.

Los elementos de la lista cuando se entreguen al Contador se convertirán en un objeto utilizable en el que los elementos serán claves y los valores serán el recuento de los elementos de la lista dada.

Por ejemplo [‘x’,’y’,’z’,’x’,’x’,’x’,’y’,’z’]. Cuando enumere el Contador, le dará un recuento de todos los elementos de la lista.


from collections import Counter
list1 = ['x','y','z','x','x','x','y','z']
print(Counter(list1))

Producción:


Counter({'x': 4, 'y': 2, 'z': 2})

Contador de diccionario

Los elementos de un diccionario son un par clave / valor y están escritos entre corchetes.

Cuando el diccionario se entrega al Contador, se convertirá en un objeto utilizable en el que los elementos serán 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 Enumerador intentará encontrar todas las claves en el diccionario dado.


from collections import Counter
dict1 =  {'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. Un contador dará un 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 utilizable en el que los elementos serán claves y los valores serán el recuento de los elementos de la tupla dada.


from collections import Counter
tuple1 = ('x','y','z','x','x','x','y','z')
print(Counter(tuple1))

Producción:


Counter({'x': 4, 'y': 2, 'z': 2})

Acceso, inicio y actualización de contadores

Inicio de un contador

Se puede iniciar un contador pasando un valor de cable, lista, diccionario o tupla como se muestra a continuación:


from collections import Counter
print(Counter("Welcome to Guru99 Tutorials!"))   #using string
print(Counter(['x','y','z','x','x','x','y', 'z'])) #using list
print(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionary
print(Counter(('x','y','z','x','x','x','y', 'z'))) #using tuple

También puede iniciar un contador vacío como se muestra a continuación:


from collections import Counter
_count = Counter()

Contador de actualizaciones

Puede agregar valores al Contador usando el método de actualización ().


_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})

Acceso al mostrador

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 : 3

G : 1
u : 3
r : 2
u : 3

Eliminar un elemento del contador

Para eliminar un elemento del Contador, puede usar del, como se muestra en el siguiente ejemplo:

Ejemplo:


from collections import Counter
dict1 =  {'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

Una operación aritmética como suma, resta, intersección y unión se puede realizar en un contador como se muestra en el siguiente ejemplo:

Ejemplo:


from collections import Counter
counter1 =  Counter({'x': 4, 'y': 2, 'z': -2})

counter2 = Counter({'x1': -12, 'y': 5, 'z':4 })

#Addition
counter3 = counter1 + counter2 # only the values that are positive will be returned.

print(counter3)

#Subtraction
counter4 = 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 output

print(counter4)

#Intersection
counter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2

print(counter5)

#Union
counter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2

print(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 varios métodos importantes disponibles con Counter, aquí hay una lista de ellos:

Ejemplo: elementos ()


from collections import Counter
counter1 =  Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0})

_elements = counter1.elements() # will give you all elements with positive value and count>0
for a in _elements:
    print(a)

Producción:


x
x
x
x
x
y
y

Ejemplo: most_common (valor)


from collections import Counter
counter1 =  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: resta ()


from collections import Counter
counter1 =  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 Counter
counter1 =  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})

Reasignar recuentos en Python

Puede asignar el recuento del contador como se muestra a continuación:

Piense en 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 Counter
counter1 =  Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})

counter1['y'] = 20

print(counter1)

Salida: después de la ejecución, verá que el recuento de y se cambia de 12 a 20


Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})

Encuentra y establece el recuento de elementos usando Counter

Para contar elementos usando un enumerador, puede hacer lo siguiente:


from collections import Counter
counter1 =  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 Counter
counter1 =  Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})

print(counter1['y'])

counter1['y'] = 20
counter1['y1'] = 10

print(counter1)

Producción:


12
Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})

Resumen:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *