En algunos lenguajes, como Python o Java, existe una forma de escribir un “for” que automáticamente itere por los elementos un contenedor. Esta implementación suele usar iteradores: objetos que pertenecen a un contenedor y que, al solicitarles acceder al siguiente elemento, lo retornan; de esta forma el iterador puede obtener cada elemento del contenedor, uno por vez.

Ejemplo 1: en Python esto se escribe:

for elemento in contenedor:
    #instrucciones

En Java esto se escribe:

for (Tipo elemento: contenedor)
    { //instrucciones }

El funcionamiento es sencillo: contenedor es una variable de algún tipo de dato correspondiente a un contenedor (vector, conjunto, tupla, diccionario, etc.) y elemento es una variable donde se va a guardar el valor de cada elemento que se encuentra en el contenedor.

Entonces, la abstracción nos permite que sólo veamos un nombre de variable (elemento) pero la computadora ve concretamente un elemento del contenedor. Entonces, si estuviéramos escribiendo en Python y en la variable contenedor tuviéramos guardada esta tupla de cuatro elementos: ( “ABC”, 89, [1, 2], (1==0, 4//2, “x”) ), al iterar en la forma indicada anteriormente, la variable elemento irá tomando como valores el contenido de la tupla, en orden desde el elemento en la posición 0 (el primero de la tupla) hasta el último, uno por cada iteración. Entonces, la variable elemento, en la primera iteración hace referencia (“se reemplaza”) al string “ABC”, en la segunda iteración hace referencia al entero 89, en la tercera iteración hace referencia a la lista [1,2] y en la cuarta y última iteración hace referencia a la tupla (False, 2, “x”), ya que resuelve la abstracción 1==0 obteniendo el resultado False, la abstracción 4//2 obteniendo el resultado 2, y la “x” es un valor string literal.