Col·leccions i iteradors

De Cacauet Wiki
La revisió el 19:20, 1 gen 2013 per Enric (discussió | contribucions) (Es crea la pàgina amb «== Introducció == * Una '''col·lecció''' és un conjunt d'objectes que es poden recórrer. No especifiquem la manera en com està organitzada l'estructura de dades (po…».)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Salta a la navegació Salta a la cerca

Introducció

  • Una col·lecció és un conjunt d'objectes que es poden recórrer. No especifiquem la manera en com està organitzada l'estructura de dades (pot ser una llista, vector, hash table, arbre, etc). És, per tant, una generalització del concepte d'estructura de dades.
  • Un iterador defineix una interfície amb uns mètodes que permeten accedir als elements d'una col·lecció. Els típics mètodes son:
    • Primer()
    • Ultim()
    • Seguent()
    • Anterior()
    • ...

En el cas de Python per tal de crear una classe iterable cal implementar els mètodes:

  • __iter__()
  • next()


Iteradors implícits

Qualsevol bucle tipus "foreach" (p.ex. en PHP) utilitza el patró iterador. En Python ho solem fer al recórrer llistes:

for element in llista:
    print element

"element" cada cop serà un objecte de la llista i en cada iteració avançarem fins el següent element. Encara que no ens adonem, estem utilitzant un objecte iterador de la llista que cada volta avança cap a next().

Iteradors explícits

Una altra manera de recórrer els elements és amb un iterador explícit. Ho podem veure en el següent exemple. Enlloc d'un for ho farem amb un while: