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.
Definir la lista
Sección titulada «Definir la lista»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.
Recorrer la lista con un bucle
Sección titulada «Recorrer la lista con un bucle»Para poder recorrer la lista en Python utilizamos un bucle for-each de la siguiente forma:
for elemento in lista: print(elemento)Crear una función recursiva
Sección titulada «Crear una función recursiva»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:
123['a', 'b', 'c', 'd']45Vemos 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:
123abcd45De esta forma ya tenemos el código que buscábamos y que nos ayuda a iterar una lista de forma recursiva con Python.
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.