2. Transformar una frase (5 punts)¶
Avís
Per a resoldre aquest exercici no es poden fer servir iteracions (ni for ni while ), només les funcions predefinides de Python i les dels mòduls itertools, functools i operator. Tampoc no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar els elements d’un iterador.
Es vol transformar una frase formada per paraules, totes en majúscules, de la següent manera:
En primer lloc, es subtitueixen totes les A per R, i totes les E per S.
Seguidament, s’eliminen les paraules que contenen tres o més R seguides, així com les que contenen tres o més S seguides.
En un fitxer anomenat frase.py deseu la funció especificada a continuació.
- frase.transforma(it)¶
- Paràmetres:
it – un iterador sobre una sequència de paraules (strings en majúscules), que representa una frase
- Retorna:
un iterador sobre una seqüència de paraules, que formen la frase original transformada segons es descriu més amunt.
Per exemple:
>>> f1 = iter('LA IMATGE DE LA DEESSA ERA MASSA CARA'.split())
>>> f2 = transforma(f1)
>>> next(f2)
'LR'
>>> next(f2)
'IMRTGS'
>>> for p in f2:
... print(p, end='-')
DS-LR-SRR-MRSSR-
Disposeu d’un joc de proves més complet al fitxer tests-frase.txt