Itérateurs

Python fournit deux itérateurs génériques. Le premier est un itérateur de séquence, il fonctionne avec n’importe quelle séquence gérant la méthode __getitem__(). Le second fonctionne avec un objet appelable et une valeur sentinelle, il appelle l’appelable pour obtenir chaque élément de la séquence, et l’itération se termine lorsque la sentinelle est reçue.

PyTypeObject PySeqIter_Type

Type des itérateurs renvoyés par les fonctions PySeqIter_New() et la forme à un argument de la fonction native iter() pour les séquences natives.

int PySeqIter_Check(op)

Renvoie vrai si op est de type PySeqIter_Type.

PyObject* PySeqIter_New(PyObject *seq)
Return value: New reference.

Renvoie un itérateur sur la séquence seq. L’itération prend fin lorsque la séquence lève IndexError lors d’une tentative d’accès.

PyTypeObject PyCallIter_Type

Type de l’itérateur renvoyé par les fonctions PyCallIter_New() et iter() à deux arguments.

int PyCallIter_Check(op)

Renvoie vrai si op est de type PyCallIter_Type.

PyObject* PyCallIter_New(PyObject *callable, PyObject *sentinel)
Return value: New reference.

Renvoie un nouvel itérateur. Le premier paramètre, callable, peut être n’importe quel objet Python appelable sans aucun paramètre ; chaque appel doit renvoyer l’élément suivant de l’itération. Lorsque callable renvoie une valeur égale à sentinel, l’itération prend fin.