2. Canviar alguns elements d’una llista (3 punts)¶
Avís
Per a resoldre aquest exercici no es poden fer servir
iteracions (ni for, ni while
ni funcions que treballin amb iteradors), només
utilitzar la recursivitat.
Al mòdul modifica (fitxer modifica.py), implementeu-hi la funció modificadora següent:
- modifica.modifica_cond(llista, cond)¶
- Paràmetres:
llista – llista qualsevol
cond – funció booleana
Modifica la llista que se li passa com a paràmetre, susbstituïnt tots el elements que compleixen la funció booleana (és a dir, aquells elements x de la llista tals que
cond(x)s’avalua aTrue), pel primer valor de la llista.
Per exemple,
>>> l = [1, 2, 3, 4, 5, 6, 7, 8]
>>> modifica_cond(l, lambda x : x < 5)
>>> l
[1, 1, 1, 1, 5, 6, 7, 8]
>>> l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> modifica_cond(l, lambda x : x%2 == 0)
>>> l
[1, 1, 3, 1, 5, 1, 7, 1, 9]
Disposeu de més jocs de proves al fitxer tests-modifica.txt.