2009-08-03 6 views
2

Dites que j'ai un itérateur.
Après l'itération de quelques éléments de l'itérateur, je devrai me débarrasser de ces premiers éléments et retourner un itérateur (de préférence le même) avec le reste des items. Comment je vais? En outre, les itérateurs prennent-ils en charge les opérations de suppression ou de pop (comme les listes)?Besoin d'obtenir le reste d'un itérateur en python

Répondre

6

Oui, il suffit d'utiliser iter.next()

Exemple

iter = xrange(3).__iter__() 

iter.next() # this pops 0 

for i in iter: 
    print i 

1 
2 

Vous pouvez crèveront l'avant d'un iterator avec .next(). Vous ne pouvez pas faire d'autres opérations fantaisistes.

+0

..although vous pouvez faire quelques trucs chouettes avec 'itertools'. –

+0

Merci. C'est ce que je voulais. – Goutham

+8

La méthode "officielle", recommandée, dans Python 2.6 et ultérieur, est next (iter), pas iter.next() [qui continue à fonctionner dans 2.6, mais pas dans 3. *]. Avec next (x) vous pouvez fournir une valeur par défaut comme deuxième argument pour éviter d'obtenir une exception StopIteration si l'itérateur est épuisé. –

Questions connexes