Python Contador en colecciones con ejemplo

โšก Resumen inteligente

Python Counter es una subclase de diccionario del mรณdulo collections que contabiliza la frecuencia con la que aparece cada elemento en un iterable. Acepta cadenas, listas, tuplas y diccionarios, y admite operaciones aritmรฉticas, de bรบsqueda de elementos comunes y de actualizaciรณn para tareas de conteo rรกpidas.

  • ๐Ÿ”ข Contando: El contador registra las ocurrencias de cada elemento y las devuelve como pares clave-contador.
  • ๐Ÿ“ฅ Cualquier iterable: Acepta como entrada cadenas de texto, listas, tuplas y diccionarios.
  • โž• Aritmรฉtica: Los contadores admiten suma y resta.tracoperaciones de uniรณn, intersecciรณn y uniรณn.
  • ๐Ÿ† mรกs_comรบn(): Este mรฉtodo devuelve los elementos de mayor frecuencia ordenados por clasificaciรณn.
  • ๐Ÿ”„ Actualizaciรณn: actualizar() y subtract() ajusta los recuentos desde otro contador o iterable.
  • ๐Ÿค– Ayuda de IA: Los asistentes de IA generan cรณdigo de contador y lo sugieren para tareas de frecuencia y recuento de palabras.

Python Contador en Colecciones

ยฟQuรฉ es Python ยฟEncimera?

Python El contador 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 del diccionario.

El contador es una subclase disponible dentro de la clase del diccionario. Usando el Python Herramienta de contador, puede contar los pares clave-valor en un objeto, tambiรฉn llamado objeto de tabla hash.

ยฟPor quรฉ utilizar Python ยฟEncimera?

A continuaciรณn se detallan las principales razones para utilizar Python 3 Contador:

  • 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.
  • Operaciones aritmรฉticas como suma, restatracLa intersecciรณn, la uniรณn y la uniรณn se pueden realizar fรกcilmente en un contador.
  • Un Contador tambiรฉn puede contar elementos de otro contador.

Introducciรณn a los Python Para contrarrestar

Python El contador 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)

Imagina que tienes la siguiente lista:

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

La lista tiene elementos x, y y z. Cuando use Counter en esta lista, contarรก cuรกntas veces x, y y z estรกn presentes. La salida si se usa el contador en la lista1 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 utilizar 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))

Salida:

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

Contador con cuerda

In Python, todo es un objeto y la cadena tambiรฉn es un objeto. Python cadena Se pueden crear simplemente encerrando caracteres entre comillas dobles. Python no admite un tipo de carรกcter. Se tratan como cadenas de longitud uno, tambiรฉn consideradas como una subcadena.

En el siguiente ejemplo, se pasa una cadena a Counter. Devuelve 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 proporciona el recuento de espacios en la cadena.

Ejemplo:

from collections import Counter
my_str = "Welcome to Guru99 Tutorials!"
print(Counter(my_str))

Salida:

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 dentro de 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 Counter
list1 = ['x','y','z','x','x','x','y','z']
print(Counter(list1))

Salida:

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

Contador con diccionario

Un diccionario tiene elementos como pares clave/valor, y se escriben dentro de llaves.

Una vez que el diccionario se entrega al Contador, se convertirรก 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 del diccionario proporcionado.

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 Counter
dict1 =  {'x': 4, 'y': 2, 'z': 2, 'z': 2}
print(Counter(dict1))

Salida:

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

Contador con tupla

Una tupla es una colecciรณn de objetos separados por comas dentro de corchetes. Counter te darรก el recuento de cada uno de los elementos de la tupla indicada.

Una vez que la tupla se entrega 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 Counter
tuple1 = ('x','y','z','x','x','x','y','z')
print(Counter(tuple1))

Salida:

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

Acceso, inicializaciรณn y actualizaciรณn de contadores

Inicializando contador

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 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 inicializar un contador vacรญo como se muestra a continuaciรณn:

from collections import Counter
_count = Counter()

Actualizando contador

Puede agregar valores al contador utilizando 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)

El resultado 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]))

Salida:

u : 3

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

Eliminar un elemento del contador

Para eliminar un elemento del Contador puede utilizar 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))

Salida:

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

Operaciรณn aritmรฉtica en Python Para contrarrestar

Operaciones aritmรฉticas como suma, restatracLa intersecciรณn y la uniรณn se pueden 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)

Salida:

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 Para contrarrestar

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 un recuento >0. Los elementos con un recuento de 0 o -1 no se devolverรกn.
  • mรกs_comรบn(valor): Este mรฉtodo le devolverรก los elementos mรกs comunes de la lista de contadores.
  • por debajotract(): Este mรฉtodo se utiliza para deducir los elementos de otro Contador.
  • actualizar(): Este mรฉtodo se utiliza para actualizar los elementos de otro Contador.

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)

Salida:

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)

Salida:

 [('y', 12), ('x', 5)]
[('y', 12), ('x', 5), ('x1', 0), ('z', -2)]

Ejemplo: subtract()

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)

Salida:

Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})

Ejemplo: actualizar()

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)

Salida:

Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})

Reasignaciรณn de recuentos en Python

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

counter1['y'] = 20

print(counter1)

Salida: Despuรฉs de ejecutar, verรก que el recuento cambia de 12 a 20.

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

Obtenga y establezca el recuento de elementos usando Counter

Para obtener el recuento de un elemento usando Counter puedes 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'

Salida:

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)

Salida:

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

Preguntas Frecuentes

Counter es una subclase de diccionario que cuenta automรกticamente los elementos hashables y devuelve 0 si faltan claves, en lugar de generar un KeyError. Un diccionario simple requiere lรณgica de conteo manual y genera un KeyError si faltan claves.

La funciรณn most_common(n) devuelve los n elementos con mayor frecuencia como tuplas (elemento, frecuencia), ordenados de mayor a menor frecuencia. Si se llama sin argumentos, devuelve todos los elementos ordenados por frecuencia.

por debajotracLa funciรณn t() conserva los recuentos cero y negativos tras la deducciรณn y actualiza el contador. El operador de resta devuelve un nuevo contador y elimina cualquier elemento cuyo resultado sea cero o negativo.

Sรญ. Primero divide el texto, por ejemplo, con Counter(sentence.split()), para contar palabras completas. Si pasas una cadena sin formato, se contarรกn caracteres individuales, incluidos los espacios, en lugar de palabras.

Use sum(counter.values()) para sumar cada recuento, o Counter.total() en Python 3.10 y posteriores. Esto indica el nรบmero total de elementos que el contador ha registrado.

El contador anula el mรฉtodo __missing__, por lo que cualquier elemento ausente reporta un valor de 0. Esto permite incrementar nuevas claves y consultar elementos de forma segura sin comprobar primero si existen.

Los asistentes de IA generan cรณdigo de contador para el anรกlisis de frecuencia, recomiendan el uso de contadores en lugar de bucles manuales y explican mรฉtodos como `most_common` y `elements`. Ademรกs, convierten la lรณgica de conteo en cรณdigo basado en colecciones mรกs limpio y rรกpido.

Sรญ. GitHub Copilot autocompleta los patrones Counter, defaultdict y OrderedDict a partir de un comentario que describe tu objetivo. Las herramientas de IA de Agentic refactorizan los bucles de conteo manual en llamadas a Counter y agregan pruebas en todo el archivo.

Resumir este post con: