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