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 a True), 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.