Aplanar llistes iterativament W96039


Statement
 

pdf   zip   main.py

Escriviu una funció aplana_iterativament(lst) que, donada una llista (de Python) lst, possiblement imbricada, retorni una llista nova amb els elements dins d’lst (no importa a quin nivell d’imbricació) que no són llistes, en el mateix ordre en el que apareixen a lst.

La funció, com el seu nom indica, ha de ser iterativa. No pot fer-se servir la recursivitat en cap moment, ni per a la funció demanada ni per a funcions auxiliars.

Exemple: si tenim l = [1,[2],[3,[4,5],6,7],8,[],9,[[[10,11]]]] el resultat d’invocar aplana_iterativament(l) ha de ser [1,2,3,4,5,6,7,8,9,10,11].

Paràmetres i retorn de la funció demanada

Tant el paràmetre com el retorn són llistes de Python.

Entrada

L’entrada al programa serà una col·lecció de llistes, una a cada línia.

Vegeu els exemples del joc de proves públic.

Sortida

La sortida ha de ser una col·lecció de llistes planes, on cada una correspon a una llista de l’entrada.

Vegeu els exemples del joc de proves públic.

Observacions

Heu de baixar-vos el fitxer code.py (icona de la serp). Aquest fitxer és un programa amb tot el que cal per executar els jocs de prova públics. Només falta, clar, la funció que us demana l’enunciat. Aquest fitxer l’heu de completar amb el codi que falta, i això, tot, és el que heu d’enviar al Jutge com a solució.

Dins el fitxer code.py teniu la classe Pila que hem treballat a les classes de l’assignatura. No caldrà que la vostra solució faci cap import ni res. Tot el codi que us cal el teniu dins de code.py.

Recordeu que podeu saber si un objecte Python e és una llista fent servir isinstance(e,list).

L’eficiència i la qualitat de la solució es tindran en compte a la correcció manual.

Public test cases
  • Input

    []
    [1,2,3,4]
    [["Per", ["molts", [["anys"]]], "Andoni"]]
    [1,[2],[3,[4,5],6,7],8,[],9,[[[10,11]]]]
    [1,[2,[3,[4,[5,[6,[7,[8,[9,[10]]]]]]]]]]
    [[[[[[[1],2],3],4],5],6],7]
    

    Output

    []
    [1, 2, 3, 4]
    ['Per', 'molts', 'anys', 'Andoni']
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    [1, 2, 3, 4, 5, 6, 7]
    
  • Information
    Author
    Jordi Delgado
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python