Maison > développement back-end > Tutoriel Python > Explication détaillée d'exemples d'itérateurs Python

Explication détaillée d'exemples d'itérateurs Python

零下一度
Libérer: 2017-06-29 10:06:17
original
2026 Les gens l'ont consulté

Un objet qui peut être directement utilisé dans une boucle for est appelé un objet itérable (itérable) ;

Un objet qui peut être appelé par la fonction next() et qui renvoie continuellement la valeur suivante est appelé un iterator;

Tous les objets itérables peuvent être convertis en itérateurs via la fonction intégrée iter().

Lors de l'utilisation d'une boucle for, le programme appellera automatiquement l'objet itérateur de l'objet à traiter, puis utilisera sa méthode next() jusqu'à ce qu'une exception d'arrêt de filtrage soit détectée.

>>> l = [4,5,6,7,8,9,0]   #这是一个列表
>>> i = iter(l)                 #可迭代对象转换为迭代器;
>>> next(i)
4
>>> next(i)
5
>>> next(i)
6
>>> next(i)
7
>>> next(i)
8
>>> next(i)
9
>>> next(i)
0
>>> next(i)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
Copier après la connexion

Comme il n'y a aucun nombre dans la liste qui dépasse 0, lorsque la plage dépasse, une exception StopIteration sera renvoyée.

Comment juger dans un environnement de production

>>> L = [4,5,6]
>>> I = L.__iter__()
>>> L.__next__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: &#39;list&#39; object has no attribute &#39;__next__&#39;
>>> I.__next__()
4
>>> from collections import Iterator, Iterable
>>> isinstance(L, Iterable)
True
>>> isinstance(L, Iterator)
False
>>> isinstance(I, Iterable)
True
>>> isinstance(I, Iterator)
True
>>> [x**2 for x in I]    
[25, 36]
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal