Iteradors com a paràmetres ========================== * Els iteradors són objectes de Python; per tant, es poden passar com a paràmetres d'una funció. Per tant, podem definir funcions que reben iteradors (o iterables) i/o retornen iteradors. Exemples: :download:`generadors2.py` Funcions predefinides --------------------- * Diverses de les funcions que coneixem reben iteradors o iterables com a paràmetre: :py:func:`max`, :py:func:`min`, :py:func:`sum`, :py:func:`sorted`, :py:meth:`str.join`, :py:func:`enumerate`. * Python conté d'altres funcions predefinides per treballar amb iterables: ============================= ======================================= Funció Acció ============================= ======================================= :py:func:`map` Aplica una funció als elements d'un iterable (o més d'un) ----------------------------- --------------------------------------- :py:func:`filter` Tria els elements d'un iterable que compleixen una condició ----------------------------- --------------------------------------- :py:func:`zip` Ajunta dos (o més) iterables en un de sol ----------------------------- --------------------------------------- :py:func:`any` Comprova si algun dels elements d'un iterable és cert ----------------------------- --------------------------------------- :py:func:`all` Comprova si tots els elements d'un iterable són certs ----------------------------- --------------------------------------- :py:func:`functools.reduce` Aplica una funció repetidament a un iterable ============================= ======================================= .. warning:: Els iteradors no tenen la funció :py:func:`len` * Algunes d'aquestes funcions reben funcions com a paràmetres. Podem definir noves funcions o bé utilitzar la :py:ref:`notació lambda `, que crea **funcions anònimes**. .. rubric:: Exemples: .. literalinclude:: us-func-iter.txt :language: python El mòdul `itertools` -------------------- El mòdul :py:mod:`itertools` conté d'altres funcions que treballen amb iterables. .. rubric:: Alguns exemples d'ús: .. literalinclude:: us-itertools.txt :language: python