Saltar a contenido

Longitud de una lista

Si recordamos nuestro último ejemplo, teníamos una lista de piezas en una ferretería. Y utilizamos un bucle for para recorrer cada elemento de la lista e imprimirlo en la consola.

ferreteria.py
# Lista de piezas
piezas = ["tornillo", "tuerca", "arandela"]

# Iterando sobre la lista
for pieza in piezas:
    print(pieza)
Terminal (Entrada/Salida)
tornillo
tuerca
arandela

Y si vamos aún más atrás en nuestro estudio, en algún momento iteramos una lista de números:

Python
# Iterando sobre una lista de números
for i in [0, 1, 2, 3, 4]:
    print(i)
Terminal (Entrada/Salida)
0
1
2
3
4

En ambos casos, utilizamos un bucle for para recorrer cada elemento de la lista e imprimirlo en la consola.

Uso de la función len()

El problema que se nos presenta es que si nosotros hacemos:

ferreteria.py
# Lista de piezas
piezas = ["tornillo", "tuerca", "arandela"]

# Iterando sobre la lista
for pieza in piezas:
    print(pieza)

Vamos a imprimir el nombre de cada pieza y no el número de su posición en la lista.

Si se nos ocurriera hacer:

ferreteria.py
# Lista de piezas
piezas = ["tornillo", "tuerca", "arandela"]

# Iterando sobre la lista
for pieza in range(piezas):
    print(pieza)

Tampoco funcionaría, porque range() espera un número entero, no una lista, y mucho menos una lista de cadenas de caracteres (str).

Aquí es donde entra en escena la función len() (l). La función len() nos permite obtener la longitud de una lista, es decir, el número de elementos que contiene.

ferreteria.py
# Lista de piezas
piezas = ["tornillo", "tuerca", "arandela"]

# Iterando sobre la lista
for i in range(len(piezas)): # len(piezas) -> 3 -> range(3) -> [0, 1, 2]
    print(piezas[i]) # piezas[0], piezas[1], piezas[2] 

Anidamiento de funciones

Si analizamos el código anterior, vemos que estamos anidando funciones. Primero, estamos llamando a la función len() con el argumento piezas, que nos devuelve el número de elementos en la lista piezas.

Luego, estamos llamando a la función range() con el resultado de len(piezas), que nos devuelve una secuencia de números desde 0 hasta len(piezas) - 1. Finalmente, estamos utilizando estos números como índices para acceder a los elementos de la lista piezas e imprimirlos en la consola.

Es decir, que el programa iría cambiando el índice de la lista dentro de los corchetes piezas[i] a parti de la variable i, para imprimir cada uno de los elementos de la lista piezas:

Terminal (Entrada/Salida)
tornillo
tuerca
arandela

Como podemos ver, el código funciona correctamente y nos permite imprimir cada elemento de la lista piezas en la consola.

Imprimiendo la ubicación de cada pieza

Pero, ¿qué pasa si queremos imprimir la ubicación de cada pieza en la lista? ¿Cómo podemos hacerlo?

ferreteria.py
# Lista de piezas
piezas = ["tornillo", "tuerca", "arandela"]

# Iterando sobre la lista
for i in range(len(piezas)):
    print(f"{i}: {piezas[i]}")
Terminal (Entrada/Salida)
0: tornillo
1: tuerca
2: arandela

En este caso, estamos utilizando la variable i para imprimir la ubicación de cada pieza en la lista piezas, junto con el nombre de la pieza. La variable i se incrementa en cada iteración del bucle for, y se utiliza como índice para acceder a los elementos de la lista piezas.

Como resultado, obtenemos la ubicación de cada pieza en la lista, junto con su nombre, en la consola.

De esta manera, podemos imprimir tanto el nombre de cada pieza como su ubicación en la lista, utilizando la variable i como índice para acceder a los elementos de la lista piezas.

Humanizando los datos

En este caso, estamos utilizando la variable i para imprimir la ubicación de cada pieza en la lista piezas. Pero, ¿qué pasa si queremos imprimir la ubicación de cada pieza en la lista, pero comenzando desde 1 en lugar de 0? ¿Cómo podemos hacerlo?

ferreteria.py
# Lista de piezas
piezas = ["tornillo", "tuerca", "arandela"]

# Iterando sobre la lista
for i in range(len(piezas)):
    print(f"{i + 1}: {piezas[i]}")
Terminal (Entrada/Salida)
1: tornillo
2: tuerca
3: arandela

En este caso, estamos utilizando la expresión i + 1 para imprimir la ubicación de cada pieza en la lista piezas, comenzando desde 1 en lugar de 0. La expresión i + 1 incrementa el valor de la variable i en 1 en cada iteración del bucle for, y se utiliza como índice para acceder a los elementos de la lista piezas.

Como resultado, obtenemos la ubicación de cada pieza en la lista, comenzando desde 1, junto con su nombre, en la consola.

¡Para recordar!

Recuerda que en Python, los índices comienzan en 0, por lo que si queremos imprimir la ubicación de cada pieza en la lista comenzando desde 1, debemos sumar 1 al valor del índice i en cada iteración del bucle for.