Aplanar una llista

Un EOL és una estructura que es defineix de forma recursiva: un EOL és o bé un enter o bé una llista, les components de la qual són a la seva vegada un EOL. Per tant, per exemple són EOLs:

  • El nombre 8

  • La llista [1, 2, 3]

  • La llista [7, [12], [5, 7]]

  • La llista [[9, 32, 83], [ [4] ], [], 5]

Dissenyeu la funció recursiva següent i deseu-la al mòdul eol.py:

eol.aplana_EOL(x)

Retorna la llista (d’un sol nivell) amb tots els nombres enters de l’EOL x, en el mateix ordre que hi apareixen:

Per exemple:

>>> aplana_EOL(8)
[8]
>>> aplana_EOL([1, 2, 3])
[1, 2, 3]
>>> aplana_EOL([7, [12], [5, 7]])
[7, 12, 5, 7]
>>> aplana_EOL([[9, 32, 83], [[4]], [], 5])
[9, 32, 83, 4, 5]

Per comprovar el tipus de quin tipus és un objecte, es recomana utilitzar la funció predefinida de Python isinstance().

Disposeu de més jocs de proves al fitxer eol.txt i d’una proposta de solució al fitxer eol.py.