Ir al contenido

Iterar una lista de forma recursiva con Python

En este ejemplo vamos a ver cómo podemos iterar una lista de forma recursiva con Python. Las listas de Python pueden contener a su vez otras listas, por lo tanto deberemos de tener una forma de recorrer la lista principal e ir recorriendo, a su vez, las listas anidadas, independientemente del grado de anidación que tengamos.

Lo primero será definir la lista en Python:

lista = [1, 2, 3, ['a', 'b', 'c', 'd'], 4, 5]

Como podemos observar, el cuarto elemento es a su vez una lista. Hay que recordar que los elementos de las listas en Python se definen mediante corchetes y separados por comas.

Para poder recorrer la lista en Python utilizamos un bucle for-each de la siguiente forma:

for elemento in lista:
print(elemento)

Para poder reutilizar el código vamos a definir un método el cual nos realice el código que recorra la lista:

def listar(lista):
for elemento in lista:
print(elemento)
listar(lista)

Al ejecutar este código el resultado que tenemos es el siguiente:

1
2
3
['a', 'b', 'c', 'd']
4
5

Vemos que la lista que ocupaba el cuarto elemento se imprime tal cual. Así que deberemos de modificar el código para preguntar si el elemento es una lista.

Usar isinstance() para detectar listas anidadas

Sección titulada «Usar isinstance() para detectar listas anidadas»

Para ello utilizamos el método isinstance() al cual le pasamos el elemento. Lo que vamos a hacer es que en el caso de que el elemento sea una lista volver a llamar al método listar(), lo cual hará que se vuelva a ejecutar el código que itera por los elementos de la lista, permitiendo iterar una lista de forma recursiva con Python:

def listar(lista):
for elemento in lista:
if isinstance(elemento, list):
listar(elemento)
else:
print(elemento)
listar(lista)

El resultado que conseguimos ahora es:

1
2
3
a
b
c
d
4
5

De esta forma ya tenemos el código que buscábamos y que nos ayuda a iterar una lista de forma recursiva con Python.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Iterar una lista de forma recursiva con Python

Uso de funciones para poder iterar una lista de forma recursiva con Python.

Descargar código