2. Comptar enrere (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 tots els elements d’un iterador.

Es demana que dissenyeu la funció especificada a continuació i la deseu en un fitxer anomenat countdown.py:

countdown.comptar_enrere(it)
Paràmetres:

it – Iterador d’una seqüència d’enters positius \(N_1, N_2, \dots\)

Retorna:

Iterador sobre la seqüència \(N_1, N_1-1, N_1-2, \dots ,1, N_2, N_2-1, N_2-2, \dots ,1, \dots\)

Per exemple,


>>> from countdown import comptar_enrere

>>> itr = comptar_enrere(iter([3, 5, 2, 8]))
>>> for x in itr:
...    print(x, end=',')
3,2,1,5,4,3,2,1,2,1,8,7,6,5,4,3,2,1,
>>> next(itr, 'final')
'final'

Disposeu d’un joc de proves més complet al fitxer tests-countdown.txt