""" Exemples de funcions que admeten iteradors/iterables com a paràmetres """ def filtra_negs(it): """ Donat un iterable it sobre una seqüència de nombres, en produeix una altra en la qual s'han filtrat els nombres negatius. >>> x = iter([1, 3, -5, -9, 20, 12, -1, 3]) >>> for n in filtra_negs(x): ... print(n, end=' ') 1 3 20 12 3 """ for e in it: if e > 0: yield e def intercala(it1, it2): """ Intercala els elements de la seqüència de it1 amb els de it2. S'acaba quan una de les dues seqüències arriba al final. >>> it1 = iter([1, 2, 3, 4, 5, 6, 7]) >>> it2 = iter([10, 20, 30, 40, 50]) >>> for a in intercala(it1, it2): ... print(a, end=' ') 1 10 2 20 3 30 4 40 5 50 6 """ while True: yield next(it1) yield next(it2)