Función Enumerate en Python: cómo funciona, cómo usarlo y ejemplo

Aprende qué es Python, ventajas y variables con nuestra guía
Pablo Londoño
Pablo Londoño

Actualizado:

Publicado:

Si siempre pones una variable de contador en cada bucle for cuando necesitas hacerle seguimiento a las iteraciones, te contamos que Python te facilita este trabajo con la función enumerate().

Qué es python enumerate

Esta función hace que el programa sea más fácil de leer, más eficiente y más fácil de mantener. En este artículo te mostraremos qué es enumerate(), cómo funciona y cómo se usa, y te daremos algunos ejemplos para ilustrar su aplicación.

Para qué sirve la función enumerate() en Python

Esta función convierte un objeto de recopilación de datos en un objeto de enumeración. Retorna un objeto con un contador que sirve de clave para cada valor, lo que facilita el acceso a cada elemento del grupo de datos.

Es muy útil usar bucles con varios objetos, pero con frecuencia necesitamos tener un medio para hacerle seguimiento a dichos bucles y también a los elementos a los que accedemos con cada iteración. La función enumerate satisface esta necesidad asignando un contador a cada elemento de un objeto, lo que nos permite rastrearlos.

Esto también facilita la manipulación de los grupos de datos cuando esto es posible. No todos los objetos de recopilación de datos de Python se pueden cambiar, y los conjuntos son un buen ejemplo de eso.

    << [Guía gratuita] >> Introducción al lenguaje de programación Python  

Cómo funciona enumerate() en Python

Enumerate() funciona muy parecido a un bucle for, ya que se repite una sola vez por cada elemento en un grupo de datos. La principal diferencia entre los dos es que la función enumerate también modifica automáticamente los datos que llegan, convirtiendo cada elemento en un par clave-valor. A medida que la función itera en todo el objeto, a cada elemento se le asigna un número que corresponde a la cantidad de veces que se ha repetido el bucle, incluida la actual.

Enumerate() acepta dos parámetros: el objeto iterable, que es obligatorio, y el número de inicio opcional. El parámetro del número de inicio acepta un entero y determina con qué número se debe empezar el conteo. Como este parámetro es opcional, el número de inicio por defecto siempre es el cero, al igual que en la indexación de matrices.

A continuación veremos algunos ejemplos, en donde además podremos analizar los datos de salida para saber cómo cambiaron los de entrada.

Cómo se usa la función enumerate() en Python

En Python, hay cuatro tipo de datos, también denominados colecciones, para almacenar la información; sin embargo, para los propósitos de este artículo solo nos referiremos a dos.

Las colecciones llamadas tuplas y listas se constituyen de objetos organizados que la mayoría de las veces no necesitarán de la función enumerate, excepto en casos de programación compleja, como el aprendizaje automático. Por otra parte, los conjuntos (o sets) y los diccionarios son tipos de colecciones que no están ordenadas, por lo que con frecuencia, requerirán alguna función de enumeración.

La función enumerate de Python permite acceder y contar elementos de manera más sencilla en una colección de datos. 

 

 

 

Después de haber definido las colecciones en Python, podemos pasar a ver ejemplos de cómo se aplica la función en dos colecciones muy distintas, la tupla y el conjunto. Estas serían las características más importantes de ambas que influyen en el comportamiento de la función:

  • Tupla: se compone de objetos ordenados e inmutables. Permite tener elementos duplicados.
  • Conjunto: se compone de objetos sin ordenar, inmutables (se pueden agregar o eliminar elementos, pero no se pueden modificar) y sin indizar. No permite tener elementos duplicados.

La función enumerate() y los conjuntos

Como decíamos anteriormente, los conjuntos son colecciones sin orden, cuyos elementos son inmutables, por lo que no se pueden modificar después de haberlos agregado. La naturaleza de este tipo de colecciones implica que el orden de los elementos no es consistente y no se pueden acceder usando un valor de indexación porque no lo contienen.

La función enumerate permite asociar un contador como clave a cada elemento del conjunto, lo que facilita su estructuración. Al enumerar el conjunto, podemos controlar mejor y de manera más confiable la forma como interactuamos con sus elementos. Como no tienen una ubicación indizada y designada, la función resulta muy útil en estos casos.

Copy of python enumerate_42023-1Copy of python enumerate_42023Las líneas de código que presentamos arriba arrojarían un mensaje de error indicando que no es posible incluir un subíndice en el conjunto, pues al no tener índices, no es compatible con la colección. Sin embargo, si enumeramos el conjunto, podremos usar el contador como índice para encontrar el elemento que necesitamos.

Copy of python enumerate_42023-4Ahora, el código mostrado arriba se imprimirá con el resultado que presentamos a continuación, aunque el orden en el que se retornan los elementos puede variar, debido a que los conjuntos no son grupos ordenados.

Copy of python enumerate_42023-Jun-07-2023-01-36-40-6466-PMEs importante tener en cuenta que esto no altera el valor del conjunto, ya que al imprimirlo obtendremos el mismo que declaramos, aunque en un orden distinto.

Copy of python enumerate_42023-Jun-07-2023-01-36-41-1816-PMPara conservar el efecto de la función enumerate en un conjunto, será necesario convertir los resultados en un tipo de datos distinto. Aquí vemos un ejemplo de cómo hacerlo usando la función list constructor().

Copy of python enumerate_42023-Jun-07-2023-01-36-40-8032-PMPara empezar, hay que crear el conjunto, luego, aplicamos la función enumerate para este conjunto y guardamos el resultado con una variable nueva. Finalmente, se utiliza el resultado de la función enumerate() con la función list constructor() y se guarda como un nuevo objeto de lista. Los datos en este nuevo objeto aparecerán como una lista de pares clave-valor.

Copy of python enumerate_42023-Jun-07-2023-01-36-40-4596-PMEl único problema con esto es que la estructura de datos obtenida es compleja, y como no se puede predecir, es necesario tener cuidado al usarla. Ahora, veamos un ejemplo de cómo utilizar la función enumerate en las tuplas.

La función enumerate() y las tuplas

En las tuplas también se pueden obtener pares clave-valor al usar la función enumerate, y en este caso, es más confiable con respecto al orden en que se retornan los elementos. Esto sucede porque los elementos en una tupla se mantienen en la posición en la que se agregaron, lo que las hace colecciones ordenadas. Por ejemplo, podemos acceder al segundo elemento en una tupla usando una notación entre corchetes con el índice 1.

Copy of python enumerate_42023-Jun-07-2023-01-36-41-6191-PM

Copy of python enumerate_42023-Jun-07-2023-01-36-41-4539-PMPor esta razón, enumerar las tuplas en Python es más sencillo que enumerar conjuntos, ya que los resultados son más predecibles y consistentes. A continuación presentamos un ejemplo de cómo podemos usar la función.

Copy of python enumerate_42023-Jun-07-2023-01-36-41-8124-PMEl resultado se imprimirá por cada iteración del bucle mostrando los pares clave-valor que creamos.

Copy of python enumerate_42023-Jun-07-2023-01-36-41-0307-PMEs importante tener en cuenta que este ejemplo es un poco redundante, ya que las tuplas son colecciones ordenadas y se puede acceder a los elementos mediante índices. Sin embargo, eso no quiere decir que no es viable usar la función; un buen ejemplo es la enumeración de un diccionario de conjuntos. Los conjuntos en un diccionario se podrían enumerar para poder analizar mejor su contenido.

Aplicar la función enumerate() de Python

Hay muchísimos trucos como la función enumerate que se pueden aplicar durante la programación, y de la complejidad del código dependerá la frecuencia con la que necesitarás usar este tipo de recursos. Eso también aumentará la dificultad en su aplicación, pero el uso de este tipo de funciones permite restructurar con eficacia grandes cantidades de datos para muchos propósitos.

Te deseamos mucha suerte, y te recomendamos que uses recursos como Stack Overflow en español o la documentación de Python para aprender más sobre su funcionamiento.

Introducción a Python Introducción al lenguaje de Python
Temas: Python

Artículos relacionados

Tu privacidad es muy importante para nosotros. HubSpot utiliza la información que nos proporcionas para mantenerte al tanto de nuestros productos, servicios y contenido relevante. Puedes cancelar la suscripción a estos mensajes en cualquier momento. Para más información, consulta nuestra Política de privacidad.

Guía gratuita para comenzar a descubrir el lenguaje de programación Python

CMS Hub is flexible for marketers, powerful for developers, and gives customers a personalized, secure experience

START FREE OR GET A DEMO