Bienvenido a Platzi

Gabriel Obregón

Gabriel Obregón

student
hace 5 meses

🧠enumerate() en Python

🔍 ¿Qué es enumerate()?

📘 Es una función integrada de Python que permite:

➡️ Recorrer listas o iterables añadiendo un índice automáticamente.

➡️ Devolver pares (índice, elemento) listos para usar.

➡️ Definir el índice inicial con start.

➡️ Evaluarse solo al iterar, lo que mejora la eficiencia.

🧩 Ideal para trabajar con listas grandes o donde se necesite numerar elementos.

⚡ Ventajas principales

Legibilidad: el código se entiende de inmediato.

⚙️ Eficiencia: se ejecuta más rápido que usar contadores manuales.

💬 Simplicidad: elimina variables extra como counter.

🧱 Seguridad: menos riesgo de errores (sin estado mutable).

📈 Escalabilidad: funciona bien con millones de elementos.

⚠️ El problema del contador manual

❌ Código tradicional:

counter = 1

for article in sample_articles:

    print(f"{counter}. {article}")

    counter = counter + 1

🚫 Desventajas:

  • Código más largo.
  • Mayor posibilidad de errores.
  • Lógica repetitiva.
  • Ineficiencia en colecciones grandes.

🚀 Solución con enumerate()

✅ Código limpio y directo:

for index, article in enumerate(sample_articles, start=1):

    print(f"{index}. {article}")

🎯 También puedes cambiar el inicio del conteo:

for index, article in enumerate(sample_articles, start=10):

    print(f"{index}. {article}")

💎 Beneficios inmediatos:

  • Recibes (índice, elemento) juntos.
  • Puedes definir start.
  • Evaluación perezosa → recorre solo lo necesario.

🔬 Cómo funciona por dentro

🔍 enumerate() crea un objeto iterable que produce tuplas (índice, valor) al recorrerlo:

enum_articles = enumerate(sample_articles)

print(enum_articles)  # muestra el objeto enumerate

for item in enum_articles:

    print(item)  # imprime (índice, article)

🧠 No convierte toda la lista, solo genera valores al iterar.

🧩 Caso práctico: enumerar fuentes únicas

📚 Objetivo: obtener fuentes de noticias sin duplicados y numerarlas.

source_set = getSources(articles)  # devuelve un set sin duplicados

for index, source in enumerate(source_set, start=1):

    print(f"{index}. {source}")

🔸 Resultados:

  • Se eliminan duplicados con set.
  • Se numeran automáticamente con enumerate.
  • Se obtiene un listado claro y ordenado (ejemplo: 38 fuentes únicas).

🪶 Mejora de legibilidad del código

✏️ Nombres claros comunican mejor la intención del código.

Antes:

source_set = getSources(articles)

Después:

unique_sources = get_unique_sources(articles)

for idx, src in enumerate(unique_sources, start=1):

    print(f"{idx}. {src}")

💡 Más fácil de mantener y entender.

🧠 Conceptos que refuerzas al usar enumerate

📘 Enumerate: genera índice y elemento como tupla.

🔢 Índice y elemento: desempaquetado directo en el for.

🧮 start: define el punto de inicio del conteo.

Evaluación perezosa: recorre solo cuando se itera.

🔒 Tupla: estructura inmutable (índice, valor).

🔁 Iterable: cualquier objeto recorrible (list, set, dict, etc.).

🧱 Set: colección sin duplicados.

🎨 Legibilidad: nombres claros → intención clara.

🚀 Rendimiento: implementado en C, muy eficiente.

🛡️ Menos errores: sin contador mutable → menos fallos.

No hay respuestas
Curso de Python Intermedio para  Entornos virtuales y PEP8

Curso de Python Intermedio para Entornos virtuales y PEP8

Domina el código Python intermedio con proyectos reales. Aprende a escribir funciones limpias, usar type hints y manejar errores profesionales. Mejora tu lógica con comprensiones, F-strings y módulos organizados para crear sistemas escalables y elegantes.

Curso de Python Intermedio para  Entornos virtuales y PEP8
Curso de Python Intermedio para  Entornos virtuales y PEP8

Curso de Python Intermedio para Entornos virtuales y PEP8

Domina el código Python intermedio con proyectos reales. Aprende a escribir funciones limpias, usar type hints y manejar errores profesionales. Mejora tu lógica con comprensiones, F-strings y módulos organizados para crear sistemas escalables y elegantes.