Iterar con For
El bucle for
en Python es una estructura de control que se utiliza para repetir un bloque de código varias veces. Se utiliza para iterar sobre un objeto iterable, como una lista, una tupla, un diccionario, un conjunto, etc.
La sintaxis del bucle for
en Python es la siguiente:
Donde variable
es una variable que se asigna a cada elemento del objeto iterable en cada iteración del bucle, y objeto_iterable
es un objeto que contiene elementos que se deben iterar.
Aquí hay un ejemplo de código que muestra cómo usar un bucle for
para imprimir los números en una lista:
Iterando cadena al revés. Haciendo uso de [::-1]
se puede iterar la lista desde el último al primer elemento.
Itera la cadena saltándose elementos. Con [::2]
vamos tomando un elemento si y otro no.
range
range
es una función en Python que se utiliza para generar una secuencia de números, por lo general con fines de iteración. La cabecera de la función range
es la siguiente:
Ejempo:
Es importante destacar que range
genera un objeto de tipo range
, no una lista. Para convertirlo en una lista, se puede utilizar la función list
.
iterables
Un iterable en Python es un objeto que contiene una secuencia de elementos y se puede recorrer en un bucle. Los iterables son una parte fundamental de la programación en Python y se usan ampliamente en muchas tareas.
Algunos ejemplos de iterables en Python incluyen listas, tuplas, diccionarios, conjuntos, cadenas de texto, archivos y objetos personalizados que implementan el método __iter__
o el protocolo de iteración.
Para recorrer un iterable, se puede usar el bucle for
. La sintaxis para hacer una iteración sobre un iterable es la siguiente:
Donde iterable
es el objeto iterable que se va a recorrer y elemento
es una variable que se asigna a cada elemento del iterable en cada iteración.
Tiene bastante sentido, porque si queremos iterar una variable, esta variable debe ser iterable, todo muy lógico. Pero llegados a este punto, tal vez de preguntes ¿pero cómo se yo si algo es iterable o no?. Bien fácil, con la siguiente función isinstance()
podemos saberlo. No te preocupes si no entiendes muy bien lo que estamos haciendo, fíjate solo en el resultado, True
significa que es iterable y False
que no lo es.
Por lo tanto las listas y las cadenas son iterables, pero numero
, que es un entero no lo es. Es por eso por lo que no podemos hacer lo siguiente, ya que daría un error. De hecho el error sería TypeError: int' object is not iterable
.
iteradores
Un iterador en Python es un objeto que permite recorrer y acceder secuencialmente a los elementos de una colección, como una lista o una tupla. Un iterador es similar a un iterable, pero tiene algunas diferencias clave.
Una de las principales diferencias es que un iterador solo permite acceder a sus elementos una vez, y no se puede volver a utilizar después de haber recorrido la colección completa. Esto se conoce como iteración única.
Otra diferencia es que los iteradores se pueden crear a partir de un iterable usando la función iter
:
Una vez que se tiene un iterador, se puede acceder a sus elementos usando la función next
:
Dado que el iterador hace referencia a nuestra lista, si llamamos más veces a next()
que la longitud de la lista, se nos devolverá un error StopIteration
. Lamentablemente no existe ninguna opción de volver al elemento anterior.
Los iteradores son útiles porque permiten recorrer y acceder a los elementos de una colección de manera eficiente y controlada. Algunas de las utilidades principales de los iteradores incluyen:
Ahorro de memoria: Los iteradores permiten recorrer una colección un elemento a la vez, en lugar de almacenar todos los elementos en la memoria a la vez. Esto es especialmente útil cuando se trabaja con colecciones muy grandes.
Control de la iteración: Los iteradores permiten controlar la iteración sobre una colección, ya sea recorriendo la colección de manera secuencial o saltándose elementos específicos.
Mejor rendimiento: Al trabajar con colecciones muy grandes, los iteradores pueden mejorar el rendimiento de su código, ya que permiten recorrer la colección de manera eficiente.
Reutilizabilidad: Los iteradores pueden ser reutilizados en diferentes partes de su código, lo que puede ayudar a mantener su código limpio y organizado.
Es perfectamente posible tener diferentes iteradores para la misma lista, y serán totalmente independientes. Tan solo dependerán de la lista, como es evidente, pero no entre ellos.
enumerate
enumerate
es una función en Python que se utiliza para iterar sobre una secuencia (como una lista, una cadena, etc.) y además mantener un registro del índice del elemento actual. La cabecera de la función enumerate
es la siguiente:
iterable
: La secuencia que se quiere iterar.start
(opcional): El índice inicial. Por defecto es 0.
Ejemplo:
En un bucle for
, enumerate
permite iterar sobre los elementos de una secuencia mientras se mantiene un registro del índice de cada elemento. Esto es útil en muchos casos, por ejemplo, para imprimir tanto el elemento como su índice o para acceder a elementos específicos de una secuencia basados en su índice.
Por último, es importante notar que su uso no se limita únicamente a bucles for
. Podemos convertir el tipo enumerate
en una lista de tuplas, donde cada una contiene un elemento de la colección inicial y el índice asociado.
Last updated