Maison  >  Article  >  développement back-end  >  Définition de l'itérateur Python et analyse d'utilisation simple

Définition de l'itérateur Python et analyse d'utilisation simple

不言
不言original
2018-05-02 15:41:381492parcourir

Cet article présente principalement la définition et l'utilisation simple des itérateurs Python, et analyse le concept, le principe, la création et l'utilisation des itérateurs sous forme d'exemples. Les amis dans le besoin peuvent s'y référer

Les exemples dans. cet article décrit la définition de l'itérateur Python et son utilisation simple. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1. Qu'est-ce qu'un itérateur

L'itération, comme son nom l'indique, consiste à répéter quelque chose plusieurs fois. fois (faites-le simplement en boucle maintenant)). Un itérateur est un objet qui implémente la méthode __next__() (cette méthode ne nécessite aucun paramètre lorsqu'elle est appelée). C'est un moyen d'accéder à une séquence itérable. Habituellement, l'accès commence à partir du premier élément de la séquence jusqu'à ce qu'il se termine quand. tous les éléments ont été consultés. [Remarque] : les itérateurs ne peuvent qu'avancer mais pas reculer

[Avantages des itérateurs] :

Aucune exigence pour l'utilisation d'itérateurs Préparez tous les éléments de toute l’itération à l’avance. L'itérateur ne calcule un élément que lorsqu'il y effectue une itération, et l'élément peut ne pas exister ou être détruit avant ou après. Par conséquent, les itérateurs conviennent pour parcourir des séquences énormes, voire infinies.

2. Créez un itérateur

A Utilisez la fonction d'usine intégrée iter(iterable) pour convertir une séquence itérable en itérateur.

a=[1,2,3,4]
b=(1,2,3)
str='Tomwenxing'
print(iter(a))
print(iter(b))
print(iter(str))

Résultat du résultat:

& lt; objet ListIterator à 0x0000000001d6d550 & gt; Itérateur personnalisé

•L'essence des itérateurs en Python est que chaque fois que la méthode
est appelée, l'élément ou le lancer suivant est renvoyé Objet conteneur de StopIteration

• Depuis n'y a pas de classe "itérateur" en Python, les classes avec les deux caractéristiques suivantes peuvent être appelées classes "itérateurs":

1. Oui

méthode, renvoie l'élément suivant du conteneur ou lève une exception StopIteration __next__()

 2. Il existe une méthode

qui renvoie l'itérateur lui-même

__next__() Résultat d'exécution :

__iter__()5f6768783b95a8f870f0ced190a5e920

1 1 2 3 5 8 13 21 34 55
#斐波那契数列
class Fabs():
  def __init__(self,max):
    self.max=max
    self.n,self.a,self.b=0,0,1
  def __iter__(self):#定义__iter__方法
    return self
  def __next__(self):#定义__next__方法
    if self.n<self.max:
      tmp=self.b
      self.a,self.b=self.b,self.a+self.b
      #等价于:
      #t=(self.a,self.a+self.b)
      #self.a=t[0]
      #self.b=t[1]
      self.n+=1
      return tmp
    raise StopIteration
print(Fabs(5))
for item in Fabs(10):
  print(item,end=&#39; &#39;)

3. Méthodes d'itérateur


1.iter.__next__() : renvoie le suivant élément de l'itérateur, mais lève une exception StopIteration lorsqu'il n'y a pas d'élément suivant

Résultat d'exécution :

Traceback (dernier appel le plus récent) :

Fichier "E:py3DemoHelloiterDemo.py", ligne 7, dans 4225fa317875f3e92281a7b1a5733569
list=[1,2,3,4]
list=iter(list)
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())

StopIteration

1
2

3
4



2.iter.__iter__() : renvoie l'objet itérateur lui-même

Résultat d'exécution :

2408241bb34550165c6a2c3d8b0e6256

list=[1,2,3,4]
list=iter(list)
print(list.__iter__())

Recommandations associées :

Exemple d'utilisation de next() dans un itérateur python

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!

Déclaration:
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