2. Inferiors i superiors (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 es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar els elements dels iteradors.

En un fitxer anomenat infsup.py deseu la funció especificada a continuació.

infsup.infsup(it, limit)
Paràmetres:
  • it – un iterador d’enters val_1, val_2, val_3 …

  • limit – un valor enter

Retorna:

una tupla (it1, it2) format per 2 iteradors. El primer valor it1 és un iterador de la seqüència de les diferències limit - val_i per tots els valors de it tals que val_i < limit. El segon iterador it2 genera la seqüència dels valors de it tals que val_i >= limit. Tots dos iteradors segueixen l’ordre de it.

Per exemple:

>>> it1 = iter([200, 300, 300, 100, 110, 900])
>>> it2, it3 = infsup(it1, 100)
>>> list(it2)
[]
>>> list(it3)
[200, 300, 300, 100, 110, 900]

>>> it1 = iter([200, 300, 300, 100, 110, 900])
>>> it2, it3 = infsup(it1, 300)
>>> list(it2)
[100, 200, 190]
>>> list(it3)
[300, 300, 900]

Disposeu de més proves en el fitxer tests-infsup.txt