Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

En el programa Python, los programadores suelen utilizar el bucle for para crear un bucle sobre un objeto iterable. Esto significa esencialmente que no se requiere una variable de conteo para acceder a los elementos dentro del iterable. Sin embargo, en ciertos casos, los programadores requieren una variable capaz de cambiar en cada iteración del bucle. En lugar de crear e incrementar variables, siempre se puede utilizar la función enumerate () para obtener un contador, junto con un valor simultáneamente.

Iterar utilizando los bucles presentes en Python

El bucle for de Python utiliza la iteración basada en colecciones, lo que significa que Python tiende a asignar un elemento a las variables del bucle ( de los iterables) en cada iteración. He aquí un ejemplo.

Los valores en este ejemplo son una lista que contiene 3 cadenas, que resultan ser los alfabetos a, b y c. En el programa Python, las listas se consideran como una variante de los objetos iterables. La variable de bucle presente en el bucle for es value. También vale la pena tener en cuenta que en cada iteración del bucle, el valor tiende a establecerse hacia el siguiente elemento y proviene de los valores del comando.

Después de esto, tienes que empezar a imprimir el valor en la pantalla. Una de las principales ventajas de las iteraciones basadas en la colección es que evita los errores que se producen en muchos otros lenguajes de programación.

Digamos que, además del valor, se planea imprimir el índice del elemento en la pantalla y en cada iteración. Bien, una forma efectiva de abordar esta tarea sería formar una variable para almacenar el índice. Una vez que lo hagas, puedes seguir actualizándolo en cada iteración, lo que se verá así:

En el ejemplo mencionado anteriormente, el índice es esencialmente un entero que lleva la cuenta de su posición en la lista. En cada iteración del bucle, imprimirá el índice con el valor. El paso final del bucle requerirá que actualices el número presente en el índice (asegúrate de actualizarlo en uno). Te darás cuenta de un error siempre que no actualices el índice en cada iteración. Así es como podría verse

 

En el ejemplo, notará que el índice de cada iteración permanece en 0. Esto se debe a que su valor no ha sido actualizado por un código al final del bucle. Rastrear un error como este puede ser increíblemente desafiante, especialmente en bucles complicados y más largos.

Una forma eficaz de abordar este problema es combinar range() y len() para crear un índice. La razón por la que esta táctica se recomienda a menudo es porque le ayuda a crear índices automáticamente, asegurándose de que no tiene que recordar cuando tiene que hacer la actualización. 

Cómo usar enumerate() en Python de forma correcta

Los programadores pueden hacer uso de enumerate() dentro de un bucle único, al igual que utilizarían el objeto iterable inicial. En lugar de poner la adición del iterable directamente después del presente en for, lo pondrá en el paréntesis del comando enumerate(). Además, tendrá que hacer ligeros cambios en la variable del bucle. Aquí hay un ejemplo que muestra cómo se verá esto:

 

Después de teclear enumerate(), obtendrá 2 variables de bucle de la función, que consistirán en la cuenta de la iteración actual junto con el valor del elemento de la iteración actual.

Al igual que en un bucle for normal, se puede dar cualquier nombre a las variables del bucle. En el ejemplo anterior, se utilizaron las palabras value y count. Sin embargo, también podrías nombrarlas v e i, o cualquier otro nombre siempre que sea válido en Python. 

Cuando se utiliza la función enumerar (), no hay que recordar cuando se accede al elemento en el iterable. Lo que hace las cosas aún mejor es que no tienes que recordar sobre el avance del índice presente en el final del bucle. Python se encarga de casi todo automáticamente, asegurando que no tengas que preocuparte de recordar detalles esenciales. 

Nota importante

El uso de las 2 variables de bucle, que son el valor y el recuento, separándolas con una coma muestra el desempaquetamiento de argumentos. Esta es una característica increíblemente poderosa en Python.

La función enumerate() de Python tiene un argumento añadido que los programadores pueden utilizar para controlar el valor inicial del recuento. El valor inicial resulta ser cero por defecto. Esto se debe a que las secuencias de Python están indexadas y todas ellas empiezan por 0. En palabras sencillas, siempre que se quiera recuperar el elemento inicial de una lista, hay que asegurarse de escoger el índice 0.

Practicando enumerar() en Python de la manera correcta

Los programadores pueden utilizar la función enumerate() siempre que quieran utilizar el elemento y el recuento dentro de un bucle. Vale la pena tener en cuenta que el uso de enumerate() esencialmente aumenta el recuento global en 1 en cada iteración. Dicho esto, esto no causará demasiada inflexibilidad. De hecho, puede seguir siendo bastante flexible ya que el recuento pasa a ser un entero regular de Python, que puede utilizar de más de una manera. 

El funcionamiento interno de enumerate() en Python

Para tener una idea más clara de cómo funciona realmente enumerate(), lo mejor sería implementar la versión que tiene con Python. Habrá dos requisitos críticos en su versión de enumerate(). Aquí están:

  • Comienza aceptando el valor de la cuenta inicial y el iterable como argumentos
  • Envía una tupla de vuelta, asegurándose de que tiene el valor de la cuenta actual junto con el elemento asociado al iterable

En el ejemplo anterior, mi_enumerar utiliza 2 argumentos, inicio y secuencia, siendo cero el valor por defecto de inicio. En cuanto a la definición de la función, tienes que usar n como valor para start mientras ejecutas un bucle for en sequence. Para cada elemento presente en la secuencia, asegúrese de ceder el control hacia la ubicación respectiva. Después de este paso, devuelva los valores actuales de elem y n. Finalmente, incremente el comando n para prepararse para la próxima iteración. 

Si quieres enumerar en Python como un programador experto, conocer los fundamentos es vital. La información y los ejemplos mencionados en este artículo te darán una clara orientación sobre cómo enumerar de la manera correcta.