3. Encadena (3 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 dels iteradors.

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

encadena.cadenes(itts, n)
Paràmetres:
  • itts – un iterable format d’una sequència d’iterables sobre enters (int)

  • n – un enter

Retorna:

un iterador sobre una seqüència dels elements múltiples de n de tots els iterables de itts, l’un darrera de l’altre i en el mateix ordre que els iterables originals.

Per exemple:


>>> it = cadenes([[2, 3, 4, 6], [8, 8, 1], [11, 12, 13, 14, 15]], 2)
>>> next(it)
2
>>> next(it)
4
>>> for e in it:
...     print(e, end='-')
...
6-8-8-12-14-

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