Counter
Counter es una herramienta que cuenta cosas automáticamente. Es como un contador que te dice cuántas veces aparece cada elemento en una lista.
from collections import Counter
# Contar letras en una palabra
palabra = "abracadabra"
contador = Counter(palabra)
print(contador)
# Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})Uso básico con listas
from collections import Counter
# Lista de frutas
frutas = ['manzana', 'naranja', 'manzana', 'plátano', 'naranja', 'manzana']
contador_frutas = Counter(frutas)
print(contador_frutas)
# Counter({'manzana': 3, 'naranja': 2, 'plátano': 1})Métodos más útiles
1. most_common() - Los más frecuentes
texto = "hola mundo hola python hola programación"
palabras = texto.split()
contador = Counter(palabras)
print(contador.most_common(2))
# [('hola', 3), ('mundo', 1)] - Las 2 más comunes
print(contador.most_common())
# [('hola', 3), ('mundo', 1), ('python', 1), ('programación', 1)] - Todas ordenadas2. Acceder a conteos específicos
contador = Counter(['a', 'b', 'a', 'c', 'b', 'a'])
print(contador['a']) # 3
print(contador['b']) # 2
print(contador['z']) # 0 (no da error)3. Actualizar contadores
contador = Counter(['a', 'b', 'a'])
# Agregar más elementos
contador.update(['a', 'c', 'b', 'a'])
print(contador) # Counter({'a': 4, 'b': 2, 'c': 1})
# También funciona con strings
contador.update("aabbcc")
print(contador) # Counter({'a': 6, 'b': 4, 'c': 3})Operaciones matemáticas
contador1 = Counter(['a', 'b', 'a', 'c'])
contador2 = Counter(['a', 'b', 'b', 'd'])
# Sumar
print(contador1 + contador2)
# Counter({'a': 3, 'b': 3, 'c': 1, 'd': 1})
# Restar
print(contador1 - contador2)
# Counter({'a': 1, 'c': 1})
# Intersección (mínimos)
print(contador1 & contador2)
# Counter({'a': 1, 'b': 1})
# Unión (máximos)
print(contador1 | contador2)
# Counter({'a': 2, 'b': 2, 'c': 1, 'd': 1})Ejemplos prácticos
Contar palabras en un texto
texto = "el gato corre tras el ratón y el perro corre tras el gato"
palabras = texto.split()
contador = Counter(palabras)
print("Palabra más común:", contador.most_common(1)[0])
# ('el', 4)
for palabra, cuenta in contador.most_common():
print(f"'{palabra}': aparece {cuenta} veces")Análisis de ventas
# Productos vendidos
ventas = ['laptop', 'mouse', 'laptop', 'teclado', 'mouse', 'laptop', 'laptop']
contador_ventas = Counter(ventas)
print("Productos vendidos:")
for producto, cantidad in contador_ventas.most_common():
print(f"- {producto}: {cantidad} unidades")
# laptop: 4 unidades
# mouse: 2 unidades
# teclado: 1 unidadContar elementos únicos
numeros = [1, 2, 3, 1, 2, 1, 4, 5, 1, 2]
contador = Counter(numeros)
print("Total de elementos:", sum(contador.values())) # 10
print("Elementos únicos:", len(contador)) # 5
print("Elementos que se repiten:", list(contador.elements()))Crear Counter de diferentes formas
# Desde una lista
Counter([1, 2, 1, 3, 2, 1])
# Desde un string
Counter("programación")
# Desde un diccionario
Counter({'a': 3, 'b': 2})
# Con argumentos por nombre
Counter(manzanas=5, naranjas=3, platanos=2)Resumen
Counter cuenta automáticamente elementos
No da error si buscas un elemento que no existe (devuelve 0)
most_common()te da los elementos más frecuentesPuedes sumar, restar y hacer operaciones entre counters
Es muy eficiente para contar y analizar datos
¡Es perfecto para análisis de texto, estadísticas, conteo de votos, o cualquier situación donde necesites contar cosas rápidamente!
Comentarios
Publicar un comentario