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