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

不言
Libérer: 2018-05-02 15:41:38
original
1535 Les gens l'ont consulté

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))
Copier après la connexion

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__()<__main__.Fabs objet à 0x00000000023F9278>

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;)
Copier après la connexion

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
list=[1,2,3,4]
list=iter(list)
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
print(list.__next__())
Copier après la connexion
print(list.__next__())

StopIteration

1
2

3
4



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

Résultat d'exécution :

< objet list_iterator à 0x0000000001D6F208>

list=[1,2,3,4]
list=iter(list)
print(list.__iter__())
Copier après la connexion

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!

É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