Competitive Programming Academy · Lección

Counter y defaultdict en acción

Cuente elementos sin errores por claves inexistentes

Lección 3 de 413 pasos

Counter y defaultdict en acción es una lección gratuita de Competitive Programming Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Competitive Programming Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Competitive Programming Academy incluye 4 lecciones en total.

Contar es fácil

Contar cuántas veces aparecen los elementos es muy habitual en los concursos. El módulo collections ofrece dos herramientas que facilitan este recuento. 🧮

El problema de las claves ausentes

Los dict normales generan un KeyError cuando incrementa una clave que todavía no existe. Estas estructuras especiales eliminan ese inconveniente.

Conozca Counter

Un Counter cuenta cualquier iterable en una sola línea y asigna a cada elemento su frecuencia como valor. Las claves ausentes simplemente cuentan como cero.

from collections import Counter
freq = Counter(nums)

Leer un recuento

Acceda a un Counter como a un dict, pero una clave ausente devuelve cero en lugar de provocar un error. Así, las consultas son totalmente seguras.

print(freq[5])
print(freq[999])

Elementos más frecuentes

Llame a most_common para obtener los elementos ordenados de mayor a menor frecuencia. Pase un número para limitar la cantidad de entradas principales que recibe.

top3 = freq.most_common(3)

Los Counter permiten hacer operaciones

Puede sumar o restar dos Counter para combinar recuentos. La operación combina las claves coincidentes y mantiene los totales alineados automáticamente.

total = Counter(a) + Counter(b)

Conozca defaultdict

Un defaultdict proporciona un valor predeterminado nuevo para cualquier clave nueva, por lo que nunca necesita comprobar su existencia primero. Solo tiene que proporcionarle la fábrica de valores predeterminados.

from collections import defaultdict
count = defaultdict(int)

Incrementar sin comprobaciones

Con defaultdict(int), una clave ausente comienza en cero, por lo que puede incrementarla directamente. Ninguna comprobación con if ensucia el bucle.

for v in nums:
    count[v] += 1

Listas predeterminadas

Use defaultdict(list) cuando cada clave deba reunir muchos valores. Añadir elementos a una clave completamente nueva simplemente comienza una lista vacía.

groups = defaultdict(list)
groups[key].append(item)

Counter o defaultdict

Recurra a Counter cuando solo necesite contar elementos, y a defaultdict cuando cada clave necesite listas, sets o valores predeterminados personalizados. 🎯

Un anagrama en una línea

Dos palabras son anagramas exactamente cuando sus Counter son iguales. La comparación gestiona de una vez la frecuencia de cada letra.

is_anagram = Counter(s) == Counter(t)

Comprobación rápida

Quiere contar apariciones mientras incrementa de forma segura las claves ausentes.

Repaso

Counter cuenta los elementos al instante y los clasifica, mientras que defaultdict evita las comprobaciones de claves ausentes para recuentos, listas o sets. Ambos eliminan el código repetitivo. 🚀

Gratis para empezar

Aprende Python con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Counter y defaultdict en acción» es gratis?

Sí — el texto completo de «Counter y defaultdict en acción» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Competitive Programming Academy, actualiza a CoddyKit PRO. El curso de Competitive Programming Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Counter y defaultdict en acción»?

Cuente elementos sin errores por claves inexistentes Practicas Competitive Programming Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Competitive Programming Academy?

No se requiere experiencia previa. Competitive Programming Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Counter y defaultdict en acción»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Competitive Programming Academy?

Sí. Cada lección de Competitive Programming Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Sets para pertenencia y eliminación de duplicados
  2. Diccionarios como tablas de consulta
  3. Counter y defaultdict en acción
  4. Agrupe y clasifique con un mapa
← Volver a Competitive Programming Academy