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